/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/VisualBasic/Test/Symbol/SymbolsTests/Source/LocalTests.vb
69 строк
2 KB
Tomáš Matoušek
Refactoring of extension methods in source packages (#78620) - take 2 (#78894)
26 июн 2025, 18:42
Не верифицирован
26 июн 2025, 18:42
05fc006
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Roslyn.Test.Utilities Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests Public Class LocalTests Inherits BasicTestBase <WorkItem(59709, "https://github.com/dotnet/roslyn/issues/59709")> <Fact> Public Sub UsingBlock() Dim compilation = CompilationUtils.CreateCompilationWithMscorlib40( <compilation> <file name="a.vb"> Module M1 Class C Sub S() As Object Using writer As System.IO.TextWriter = System.IO.File.CreateText("log.txt") writer.WriteLine("") 'BIND:"writer" End Using End Sub End Class End Module </file> </compilation>) Dim model = GetSemanticModel(compilation, "a.vb") Dim expressionSyntax = CompilationUtils.FindBindingText(Of IdentifierNameSyntax)(compilation, "a.vb", 0) Dim local = DirectCast(model.GetSymbolInfo(expressionSyntax).Symbol, ILocalSymbol) Assert.False(local.IsConst) Assert.False(local.IsForEach) Assert.True(local.IsUsing) End Sub <WorkItem(59709, "https://github.com/dotnet/roslyn/issues/59709")> <Fact> Public Sub ForEach() Dim compilation = CompilationUtils.CreateCompilationWithMscorlib40( <compilation> <file name="a.vb"> Module M1 Class C Sub S() As Object Dim a() As Integer = {1, 2, 3} For Each x As Integer In a Dim y = x 'BIND:"x" Next End Sub End Class End Module </file> </compilation>) Dim model = GetSemanticModel(compilation, "a.vb") Dim expressionSyntax = CompilationUtils.FindBindingText(Of IdentifierNameSyntax)(compilation, "a.vb", 0) Dim local = DirectCast(model.GetSymbolInfo(expressionSyntax).Symbol, ILocalSymbol) Assert.False(local.IsConst) Assert.True(local.IsForEach) Assert.True(VisualBasicExtensions.IsForEach(local)) Assert.True(local.IsForEach()) ' calls the property, not the extension method Assert.False(local.IsUsing) End Sub End Class End Namespace