未验证 提交 5721ea69 编写于 作者: R Rikki Gibson 提交者: GitHub

Add public API test for extended partial methods (#47727)

上级 e6475bc8
......@@ -3074,5 +3074,39 @@ partial class C
// public partial string? M12(); // 7
Diagnostic(ErrorCode.WRN_MissingNonNullTypesContextForAnnotation, "?").WithLocation(36, 26));
}
[Fact]
public void PublicAPI()
{
var source = @"
#nullable enable
partial class C
{
public partial string M1();
public partial string M1() => ""a"";
partial void M2();
partial void M2() { }
}";
var comp = CreateCompilation(source, parseOptions: TestOptions.RegularWithExtendedPartialMethods);
comp.VerifyDiagnostics();
verifyPublicAPI(comp.GetMember<MethodSymbol>("C.M1").GetPublicSymbol());
verifyPublicAPI(comp.GetMember<MethodSymbol>("C.M2").GetPublicSymbol());
void verifyPublicAPI(IMethodSymbol defSymbol)
{
var implSymbol = defSymbol.PartialImplementationPart;
Assert.NotNull(implSymbol);
Assert.NotEqual(implSymbol, defSymbol);
Assert.Null(defSymbol.PartialDefinitionPart);
Assert.Null(implSymbol.PartialImplementationPart);
Assert.Equal(implSymbol.PartialDefinitionPart, defSymbol);
Assert.Equal(implSymbol.ToTestDisplayString(includeNonNullable: false), defSymbol.ToTestDisplayString(includeNonNullable: false));
}
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册