提交 e2864462 编写于 作者: J Jason Malinowski

Fix GenerateConstructorFromMembers to support top-level nullability

上级 a180ec05
......@@ -709,6 +709,29 @@ class Z
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsGenerateConstructorFromMembers)]
public async Task NullableReferenceType()
{
await TestInRegularAndScriptAsync(
@"#nullable enable
class Z
{
[|string? a;|]
}",
@"#nullable enable
class Z
{
string? a;
public Z(string? a{|Navigation:)|}
{
this.a = a;
}
}");
}
[WorkItem(14219, "https://github.com/dotnet/roslyn/issues/14219")]
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsGenerateConstructorFromMembers)]
public async Task TestUnderscoreInName1()
......
......@@ -78,8 +78,8 @@ private class State
orderby c.Parameters.Length descending
where c.Parameters.Length > 0 && c.Parameters.Length < parameters.Length
where c.Parameters.All(p => p.RefKind == RefKind.None) && !c.Parameters.Any(p => p.IsParams)
let constructorTypes = c.Parameters.Select(p => p.Type)
let symbolTypes = parameters.Take(c.Parameters.Length).Select(p => p.Type)
let constructorTypes = c.Parameters.Select(p => p.GetTypeWithAnnotatedNullability())
let symbolTypes = parameters.Take(c.Parameters.Length).Select(p => p.GetTypeWithAnnotatedNullability())
where constructorTypes.SequenceEqual(symbolTypes)
select c;
......
......@@ -121,9 +121,7 @@ private static bool IsViableProperty(IPropertySymbol property)
foreach (var symbol in selectedMembers)
{
var type = symbol is IFieldSymbol
? ((IFieldSymbol)symbol).Type
: ((IPropertySymbol)symbol).Type;
var type = symbol.GetMemberType();
var identifierNameParts = IdentifierNameParts.CreateIdentifierNameParts(symbol, rules);
if (identifierNameParts.BaseName == "")
......
......@@ -125,7 +125,7 @@ internal static partial class SyntaxGeneratorExtensions
foreach (var parameter in parameters)
{
var refKind = parameter.RefKind;
var parameterType = parameter.Type;
var parameterType = parameter.GetTypeWithAnnotatedNullability();
var parameterName = parameter.Name;
if (refKind != RefKind.Out)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册