提交 86891283 编写于 作者: C CyrusNajmabadi

Move diagnostic from parser to later phase.

上级 d0a377e6
......@@ -3642,14 +3642,7 @@ private enum PostSkipAction
this.ParseAttributeDeclarations(accAttrs);
this.ParseModifiers(accMods);
if (isEvent)
{
if (accMods != null && accMods.Count > 0)
{
accMods[0] = this.AddError(accMods[0], ErrorCode.ERR_NoModifiersOnAccessor);
}
}
else
if (!isEvent)
{
if (accMods != null && accMods.Count > 0)
{
......
......@@ -85,6 +85,11 @@ internal sealed class SourceCustomEventAccessorSymbol : SourceEventAccessorSymbo
}
_name = GetOverriddenAccessorName(@event, isAdder) ?? _name;
if (syntax.Modifiers.Count > 0)
{
diagnostics.Add(ErrorCode.ERR_NoModifiersOnAccessor, syntax.Modifiers[0].GetLocation());
}
}
internal AccessorDeclarationSyntax GetSyntax()
......
......@@ -3878,8 +3878,9 @@ public static int Main()
}
}
";
ParseAndValidate(test, Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private"), Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public"));
CreateCompilationWithMscorlib(test).GetDeclarationDiagnostics().Verify(
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private"),
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public"));
}
[Fact]
......@@ -3897,7 +3898,9 @@ public class Test
}
";
ParseAndValidate(test, Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public"), Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private"));
CreateCompilationWithMscorlib(test).GetDeclarationDiagnostics().Verify(
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public"),
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private"));
}
[WorkItem(863423, "DevDiv/Personal")]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册