microsoft / verona

Research programming language for concurrent ownership
https://microsoft.github.io/verona/
MIT License
3.58k stars 167 forks source link

Looping in validtypeargs pass #652

Open viewedlobster opened 10 months ago

viewedlobster commented 10 months ago
class Subtype[S, T] where (S < T) {}

type Copyable[Slf] = {
  copy(self: Slf) : Slf
} & (Slf < Copyable[Slf])

class C {
  copy(self: C): C
}

let x : Subtype[C, Copyable[C]]

Checking that Subtype[C, Copyable[C]] is a valid type instantiation results in looping.

mjp41 commented 7 months ago

I have created a branch with this example on: regression_652 This can be used to debug and test alternatives to the implementation.