提交 76c18678 编写于 作者: M Marek Safar

Tweak few error reports

上级 d884317a
// cs0575.cs: Only class types can contain destructor
// Line: 5
struct X {
// CS0575: Only class types can contain destructor
// Line: 10
struct X
{
~X ()
{
}
......@@ -10,5 +11,3 @@ struct X {
{
}
}
}
......@@ -251,11 +251,6 @@ namespace Mono.CSharp
%token INTERR_NULLABLE
%token EXTERN_ALIAS
/* Generics <,> tokens */
%token OP_GENERICS_LT
%token OP_GENERICS_LT_DECL
%token OP_GENERICS_GT
/* C# keywords which are not really keywords */
%token GET
%token SET
......@@ -315,6 +310,11 @@ namespace Mono.CSharp
%token OP_PTR
%token OP_COALESCING
/* Generics <,> tokens */
%token OP_GENERICS_LT
%token OP_GENERICS_LT_DECL
%token OP_GENERICS_GT
%token LITERAL
%token IDENTIFIER
......@@ -541,7 +541,6 @@ namespace_body_body
{
Report.Error (1518, lexer.Location, "Expected `class', `delegate', `enum', `interface', or `struct'");
}
CLOSE_BRACE
| opt_extern_alias_directives
opt_using_directives
opt_namespace_member_declarations
......@@ -2739,7 +2738,7 @@ type_declaration_name
{
lexer.parsing_generic_declaration = false;
var lt = (Tokenizer.LocatedToken) $1;
$$ = new MemberName (lt.Value, (TypeArguments)$3, lt.Location);
$$ = new MemberName (lt.Value, (TypeArguments)$3, lt.Location);
}
;
......@@ -6174,17 +6173,21 @@ public void parse ()
Tokenizer tokenizer = lexer as Tokenizer;
tokenizer.cleanup ();
} catch (Exception e){
if (e is yyParser.yyUnexpectedEof)
if (e is yyParser.yyUnexpectedEof) {
Error_SyntaxError (yyToken);
UnexpectedEOF = true;
return;
}
// Used by compiler-tester to test internal errors
// if (yacc_verbose_flag > 0)
// throw;
if (e is yyParser.yyException)
if (e is yyParser.yyException) {
Report.Error (-25, lexer.Location, "Parsing error");
else
} else {
// Used by compiler-tester to test internal errors
if (yacc_verbose_flag > 0)
throw;
Report.Error (589, lexer.Location, "Internal compiler error during parsing");
}
}
if (RootContext.ToplevelTypes.NamespaceEntry != null)
......@@ -6757,11 +6760,13 @@ static string GetTokenName (int token)
case Token.IDENTIFIER:
return "identifier";
case Token.EOF:
return "end-of-file";
// All of these are internal.
case Token.NONE:
case Token.ERROR:
case Token.FIRST_KEYWORD:
case Token.EOF:
case Token.EVAL_COMPILATION_UNIT_PARSER:
case Token.EVAL_USING_DECLARATIONS_UNIT_PARSER:
case Token.EVAL_STATEMENT_PARSER:
......
......@@ -2702,8 +2702,8 @@ namespace Mono.CSharp
}
} catch (IndexOutOfRangeException) {
Report.Error (645, Location, "Identifier too long (limit is 512 chars)");
col += pos - 1;
return Token.ERROR;
--pos;
col += pos;
}
col += pos - 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册