<Fact>
Public Sub NothingInGlobalImports()
Dim options = TestOptions.DebugDll.WithGlobalImports({Nothing})
options.Errors.AssertTheseDiagnostics(<expected/>)
Dim comp = CreateCompilation("", options:=options)
comp.AssertTheseDiagnostics(<expected/>)
End Sub
Observed:
System.NullReferenceException : Object reference not set to an instance of an object.
Stack Trace:
F:\GitHub\roslyn\src\Compilers\VisualBasic\Portable\Symbols\Source\SourceModuleSymbol.vb(375,0): at Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol.BindImports(CancellationToken cancellationToken)
F:\GitHub\roslyn\src\Compilers\VisualBasic\Portable\Symbols\Source\SourceModuleSymbol.vb(349,0): at Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol.EnsureImportsAreBound(CancellationToken cancellationToken)
F:\GitHub\roslyn\src\Compilers\VisualBasic\Portable\Symbols\Source\SourceModuleSymbol.vb(625,0): at Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol.GetAllDeclarationErrors(BindingDiagnosticBag diagnostics, CancellationToken cancellationToken, Boolean& hasExtensionMethods)
F:\GitHub\roslyn\src\Compilers\VisualBasic\Portable\Symbols\Source\SourceAssemblySymbol.vb(1144,0): at Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol.GetAllDeclarationErrors(BindingDiagnosticBag diagnostics, CancellationToken cancellationToken)
F:\GitHub\roslyn\src\Compilers\VisualBasic\Portable\Compilation\VisualBasicCompilation.vb(2064,0): at Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.GetDiagnosticsWithoutFiltering(CompilationStage stage, Boolean includeEarlierStages, BindingDiagnosticBag builder, CancellationToken cancellationToken)
F:\GitHub\roslyn\src\Compilers\VisualBasic\Portable\Compilation\VisualBasicCompilation.vb(2013,0): at Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, DiagnosticBag diagnostics, CancellationToken cancellationToken)
F:\GitHub\roslyn\src\Compilers\VisualBasic\Portable\Compilation\VisualBasicCompilation.vb(2002,0): at Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, CancellationToken cancellationToken)
F:\GitHub\roslyn\src\Compilers\Test\Utilities\VisualBasic\CompilationTestUtils.vb(847,0): at Microsoft.CodeAnalysis.VisualBasic.UnitTests.CompilationUtils.AssertTheseDiagnostics(Compilation compilation, XElement errs, Boolean suppressInfos)
F:\GitHub\roslyn\src\Compilers\VisualBasic\Test\Semantic\Compilation\VisualBasicCompilationOptionsTests.vb(580,0): at Microsoft.CodeAnalysis.VisualBasic.UnitTests.VisualBasicCompilationOptionsTests.NothingInGlobalImports()
Expected:
No exception. It would be Ok to report an error, but that is optional, I think. We can simply ignore the null reference.
Observed:
Expected: No exception. It would be Ok to report an error, but that is optional, I think. We can simply ignore the null reference.
Should check similar scenario for C#.