All of the above parses now (on Moar, Parrot and JVM): $ perl6 -e 'class A { has ($.x where 1) }; say "alive"' alive
$ perl6 -e 'class A { has $.x where 1 }; say "alive"' alive $ perl6-m -e 'class A { has $x where 1; }; say "alive"' alive $ perl6 -e 'class A { has Int $.color where 1|2; }; say "alive"' alive STD also agrees: $ viv -c -e 'class A { has Int $.color where 1|2; }' syntax OK But before adding tests I wonder whether the where clause has any effect. Shouldn't the following complain that $.color is restricted to values 1 and 2? $ perl6 -e 'class A { has Int $.color where 1|2 }; my $a = A.new( color => 3 ); say $a;' A.new(color => 3)