#line 1 "-" #line 1 "test/poly_class2.g" use "basic_models.g"; class foo { foo() { } foo(int x) : x(x) { } foo(foo other) : x(other.x) { } int x; }; class fooey where { DefaultConstructible, Regular } { fooey() { } fooey(T x) : x(x) { } fooey(fooey other) : x(other.x) { } T x; }; fun bar0(int x) -> foo@ { return @foo(x); } fun bar1(int x) -> fooey@ { return @fooey(x); } fun bar2 where { DefaultConstructible, Regular } (T x) -> fooey@ { return @fooey(x); } fun main() -> int@ { let f0 = bar0(4); let f1 = bar1(4); let f2 = bar2(4); return f0.x * 2 - (f1.x + f2.x); }