%left new2
%left '[' ']' "new" '{' "{ (dictionary)" '.' ".." "::" '@'
-%nonassoc T_IDENTIFIER
+%left T_IDENTIFIER
%left above_identifier
%left below_else
%nonassoc "else"
return c;
if(TYPE_IS_NULL(from) && !IS_NUMBER_OR_INT(to))
return c;
- syntaxerror("can't convert type %s to %s", from->name, to->name);
+ syntaxerror("can't convert type %s%s%s to %s%s%s",
+ from->package, from->package?".":"", from->name,
+ to->package, to->package?".":"", to->name);
return 0; // make gcc happy
}
FOR_INIT : VOIDEXPRESSION
// TODO: why doesn't an %prec above_identifier resolve the r-r conflict here?
+// (I don't see any easy way to revolve this conflict otherwise, as we
+// can't touch VAR_READ without upsetting the precedence about "return")
FOR_IN_INIT : "var" T_IDENTIFIER MAYBETYPE {
$$=$2;new_variable($2,$3,1);
}