inkytonik / cooma

The Cooma project is investigating secure programming language design based on fine-grained object capabilities.
Mozilla Public License 2.0
3 stars 2 forks source link

Fix bound checking when a type variable is involved #68

Closed nhweston closed 2 years ago

nhweston commented 2 years ago

I noticed that the prelude failed to compile with the new bound-checking changes. In particular, the semantic analyser complained that the cases in:

def ite(t: Type, b: Boolean, l: t, r: t) t =
  b match {
    case True(_) => l
    case False(_) => r
  }

…were not of a common type.

The reason is that the bound-checker does not account for type variables. I have fixed this in this PR and added a test case.