未验证 提交 1fe7afcd 编写于 作者: J Jared Parsons 提交者: GitHub

Merge pull request #30757 from AlekseyTs/NullableAndNetModules

Do not inject attribute types into .Net modules.
......@@ -537,6 +537,11 @@ public void Add(NamespaceOrTypeSymbol symbol)
public void AddInjectedSymbols(NamespaceSymbol containingNamespace)
{
if (containingNamespace.DeclaringCompilation.Options.OutputKind.IsNetModule())
{
return;
}
const string codeAnalysis = "CodeAnalysis";
const string system = "System";
const string microsoft = "Microsoft";
......
......@@ -407,6 +407,42 @@ public static void Main()
);
}
[Fact]
[WorkItem(30756, "https://github.com/dotnet/roslyn/issues/30756")]
public void IgnoreEffectivelyInternalStructFieldsOfReferenceTypeFromAddedModule_PlusNullable()
{
var source = @"
internal class C1
{
public struct S
{
public string data;
}
}
public struct Struct
{
internal C1.S data;
}
";
var comp1 = CreateCompilation(source, options: WithNonNullTypesTrue(TestOptions.DebugModule));
var moduleReference = comp1.EmitToImageReference();
var source2 =
@"class Program
{
public static void Main()
{
Struct r1;
var r2 = r1;
}
}";
CreateCompilation(source2, references: new MetadataReference[] { moduleReference }, options: WithNonNullTypesTrue()).VerifyDiagnostics(
// (6,18): error CS0165: Use of unassigned local variable 'r1'
// var r2 = r1;
Diagnostic(ErrorCode.ERR_UseDefViolation, "r1").WithArguments("r1").WithLocation(6, 18)
);
}
[Fact, WorkItem(1072447, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1072447")]
public void IgnorePrivateStructFieldsOfReferenceTypeFromAddedModule02()
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册