Since the current error message looks reasonable to me (though different from STD's) I went ahead and added a test to S32-exceptions/misc.t with the following commit: https://github.com/perl6/roast/commit/5265f7d69e
But: The new error message only happens with "my Int a;". Without the semicolon we get the old error message. $ perl6-m -e 'my Int a;' ===SORRY!=== Error while compiling -e Malformed my (did you mean to declare a sigilless \a or $a?) at -e:1 ------> my Int a⏏; $ perl6-m -e 'my Int a' ===SORRY!=== Type 'Int' is not declared. Did you mean 'int'? at -e:1 ------> my Int ⏏a Malformed my at -e:1 ------> my Int ⏏a expecting any of: scoped declarator $ viv -c -e 'my Int a;' ===SORRY!=== Multiple prefix constraints not yet supported at (eval) line 1: ------> my Int ⏏a; Malformed my at (eval) line 1: ------> my Int ⏏a; expecting any of: multi_declarator typename Parse failed $ viv -c -e 'my Int a' ===SORRY!=== Multiple prefix constraints not yet supported at (eval) line 1: ------> my Int ⏏a Malformed my at (eval) line 1: ------> my Int ⏏a expecting any of: multi_declarator typename Parse failed