public void LocalDeclarationNullAnnotator_DoesAnnotateDeclarationsToReferenceTypes(string declarationSource) { var(model, syntax) = CompiledSourceFileProvider.CompileStatement(declarationSource); var rewriter = new LocalDeclarationNullAnnotator(model); var rewritten = rewriter.Visit(syntax) as LocalDeclarationStatementSyntax; Assert.That(rewritten, Is.Not.Null); Assert.That(rewritten !.Declaration.Type, Is.InstanceOf <NullableTypeSyntax>()); }
public void LocalDeclarationNullAnnotator_DoesNotAnnotateDeclarationsToVar(string declarationSource) { var(model, syntax) = CompiledSourceFileProvider.CompileStatement(declarationSource); var rewriter = new LocalDeclarationNullAnnotator(model); var rewritten = rewriter.Visit(syntax) as LocalDeclarationStatementSyntax; Assert.That(rewritten, Is.Not.Null); Assert.That(rewritten, Is.EqualTo(syntax)); }
public void LocalDeclarationNullAnnotator_DoesAnnotateDeclarationsCallingNullableMethods(string declarationSource) { var classContentTemplate = @"public string? returnNull() { return null; } public void TestMethod() {" + $"\r\n {declarationSource}\r\n" + "}\r\n"; var(semanticModel, syntaxNode) = CompiledSourceFileProvider.CompileInClass("TestClass", classContentTemplate); var testMethod = syntaxNode.DescendantNodes().OfType <MethodDeclarationSyntax>().Single(m => m.Identifier.ToString() == "TestMethod"); var declaration = testMethod.Body !.Statements.First(); var rewriter = new LocalDeclarationNullAnnotator(semanticModel); var rewritten = rewriter.Visit(declaration) as LocalDeclarationStatementSyntax; Assert.That(rewritten, Is.Not.Null); Assert.That(rewritten !.Declaration.Type, Is.InstanceOf <NullableTypeSyntax>()); }