未验证 提交 afd10305 编写于 作者: C CyrusNajmabadi 提交者: GitHub

Merge pull request #48173 from Youssef1313/patch-42

Don't offer generate parameter/field/property for top-level programs
......@@ -9342,5 +9342,12 @@ internal MyException(int error, int offset, string message) : base(message)
string.Format(FeaturesResources.Generate_parameter_0, "Error", "MyException"),
});
}
[WorkItem(48172, "https://github.com/dotnet/roslyn/issues/48172")]
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsGenerateVariable)]
public async Task TestMissingOfferParameterInTopLevel()
{
await TestMissingAsync("[|Console|].WriteLine();", new TestParameters(Options.Regular));
}
}
}
......@@ -136,7 +136,7 @@ private partial class State
internal bool CanGeneratePropertyOrField()
{
return !ContainingType.IsImplicitClass;
return ContainingType is { IsImplicitClass: false, Name: not WellKnownMemberNames.TopLevelStatementsEntryPointTypeName };
}
internal bool CanGenerateLocal()
......@@ -148,7 +148,9 @@ internal bool CanGenerateLocal()
internal bool CanGenerateParameter()
{
// !this.IsInMemberContext prevents us offering this fix for `x.goo` where `goo` does not exist
return ContainingMethod != null && !IsInMemberContext && !IsConstant;
// Workaround: The compiler returns IsImplicitlyDeclared = false for <Main>$.
return ContainingMethod is { IsImplicitlyDeclared: false, Name: not WellKnownMemberNames.TopLevelStatementsEntryPointMethodName }
&& !IsInMemberContext && !IsConstant;
}
private bool TryInitializeExplicitInterface(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册