提交 3ae77849 编写于 作者: C CyrusNajmabadi 提交者: GitHub

Merge pull request #16131 from CyrusNajmabadi/parserDiagnostics8

Don't report parse errors for modifiers on event accessors.
......@@ -3590,14 +3590,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()
......
......@@ -4053,8 +4053,13 @@ public static int Main()
}
}
";
ParseAndValidate(test, Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private"), Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public"));
CreateCompilationWithMscorlib(test).GetDeclarationDiagnostics().Verify(
// (17,9): error CS1609: Modifiers cannot be placed on event accessor declarations
// private add{}
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private").WithLocation(17, 9),
// (18,9): error CS1609: Modifiers cannot be placed on event accessor declarations
// public remove{}
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public").WithLocation(18, 9));
}
[Fact]
......@@ -4072,7 +4077,13 @@ public class Test
}
";
ParseAndValidate(test, Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public"), Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private"));
CreateCompilationWithMscorlib(test).GetDeclarationDiagnostics().Verify(
// (7,9): error CS1609: Modifiers cannot be placed on event accessor declarations
// public add { }
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "public").WithLocation(7, 9),
// (8,9): error CS1609: Modifiers cannot be placed on event accessor declarations
// private remove { }
Diagnostic(ErrorCode.ERR_NoModifiersOnAccessor, "private").WithLocation(8, 9));
}
[WorkItem(863423, "DevDiv/Personal")]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册