提交 342921ce 编写于 作者: V VSadov

Added rename tracker tests for VB

上级 a1026f32
......@@ -737,7 +737,7 @@ public override ImmutableArray<FieldSymbol> TupleDefaultElementFields
private ImmutableArray<FieldSymbol> CollectTupleElementFields()
{
var builder = ArrayBuilder<FieldSymbol>.GetInstance(_elementTypes.Length, null);
var builder = ArrayBuilder<FieldSymbol>.GetInstance(_elementTypes.Length, fillWithValue: null);
foreach (var member in GetMembers())
{
......@@ -777,7 +777,7 @@ public override ImmutableArray<Symbol> GetMembers()
private ImmutableArray<Symbol> CreateMembers()
{
var elementsMatchedByFields = ArrayBuilder<bool>.GetInstance(_elementTypes.Length, false);
var elementsMatchedByFields = ArrayBuilder<bool>.GetInstance(_elementTypes.Length, fillWithValue: false);
var members = ArrayBuilder<Symbol>.GetInstance(Math.Max(_elementTypes.Length, _underlyingType.OriginalDefinition.GetMembers().Length));
NamedTypeSymbol currentUnderlying = _underlyingType;
......
......@@ -609,7 +609,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Private Function CollectTupleElementFields() As ImmutableArray(Of FieldSymbol)
Dim builder = ArrayBuilder(Of FieldSymbol).GetInstance(_elementTypes.Length, Nothing)
Dim builder = ArrayBuilder(Of FieldSymbol).GetInstance(_elementTypes.Length, fillWithValue:=Nothing)
For Each member In GetMembers()
If member.Kind <> SymbolKind.Field Then
......@@ -639,7 +639,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End Function
Private Function CreateMembers() As ImmutableArray(Of Symbol)
Dim elementsMatchedByFields = ArrayBuilder(Of Boolean).GetInstance(_elementTypes.Length, False)
Dim elementsMatchedByFields = ArrayBuilder(Of Boolean).GetInstance(_elementTypes.Length, fillWithValue:=False)
Dim members = ArrayBuilder(Of Symbol).GetInstance(Math.Max(_elementTypes.Length, _underlyingType.OriginalDefinition.GetMembers().Length))
Dim currentUnderlying As NamedTypeSymbol = _underlyingType
......
......@@ -1217,6 +1217,27 @@ void M()
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameImplicitTupleFieldVB()
{
var code = @"
class C
Sub M()
Dim x as (Integer, Integer) = (1, 2)
Dim y = x.Item1$$
End Sub
End Class
";
using (var state = await RenameTrackingTestState.CreateAsync(code, LanguageNames.VisualBasic))
{
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameImplicitTupleFieldExtended()
......@@ -1240,6 +1261,26 @@ void M()
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameImplicitTupleFieldExtendedVB()
{
var code = @"
Class C
Sub M()
Dim x as (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Dim y = x.Item9$$
End Sub
End Class
";
using (var state = await RenameTrackingTestState.CreateAsync(code, LanguageNames.VisualBasic))
{
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
......@@ -1276,6 +1317,102 @@ void M()
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameExplicitTupleFieldVB()
{
var code = @"
class C
Sub M()
Dim x as (Item1 as integer, int Item2 as integer) = (1, 2)
Dim y = x.Item1$$
End Sub
End Class";
using (var state = await RenameTrackingTestState.CreateAsync(code, LanguageNames.VisualBasic))
{
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertTag("Item1", "Ite", invokeAction: true);
// Make sure the rename completed
var expectedCode = @"
class C
Sub M()
Dim x as (Ite as integer, int Item2 as integer) = (1, 2)
Dim y = x.Ite
End Sub
End Class";
Assert.Equal(expectedCode, state.HostDocument.TextBuffer.CurrentSnapshot.GetText());
await state.AssertNoTag();
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameExplicitTupleField01()
{
var code = @"
class C
{
void M()
{
(int Ite, int) x = (1, 2);
var y = x.Ite$$;
}
}";
using (var state = await RenameTrackingTestState.CreateAsync(code, LanguageNames.CSharp))
{
state.EditorOperations.InsertText("m1");
await state.AssertTag("Ite", "Item1", invokeAction: true);
// Make sure the rename completed
var expectedCode = @"
class C
{
void M()
{
(int Item1, int) x = (1, 2);
var y = x.Item1;
}
}";
Assert.Equal(expectedCode, state.HostDocument.TextBuffer.CurrentSnapshot.GetText());
await state.AssertNoTag();
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameExplicitTupleField01VB()
{
var code = @"
class C
Sub M()
Dim x as (Ite as Integer, Item2 as Integer) = (1, 2)
var y = x.Ite$$
End Sub
End Class";
using (var state = await RenameTrackingTestState.CreateAsync(code, LanguageNames.VisualBasic))
{
state.EditorOperations.InsertText("m1");
await state.AssertTag("Ite", "Item1", invokeAction: true);
// Make sure the rename completed
var expectedCode = @"
class C
Sub M()
Dim x as (Item1 as Integer, Item2 as Integer) = (1, 2)
var y = x.Item1
End Sub
End Class";
Assert.Equal(expectedCode, state.HostDocument.TextBuffer.CurrentSnapshot.GetText());
await state.AssertNoTag();
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameExplicitTupleFieldExtended()
......@@ -1310,5 +1447,36 @@ void M()
await state.AssertNoTag();
}
}
[WpfFact]
[Trait(Traits.Feature, Traits.Features.RenameTracking)]
public async Task RenameExplicitTupleFieldExtendedVB()
{
var code = @"
class C
Sub M()
Dim x as (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Item9 As Integer, Integer) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
var y = x.Item9$$;
End Sub
End Class";
using (var state = await RenameTrackingTestState.CreateAsync(code, LanguageNames.VisualBasic))
{
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertTag("Item9", "Ite", invokeAction: true);
// Make sure the rename completed
var expectedCode = @"
class C
Sub M()
Dim x as (Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Ite As Integer, Integer) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
var y = x.Ite;
End Sub
End Class";
Assert.Equal(expectedCode, state.HostDocument.TextBuffer.CurrentSnapshot.GetText());
await state.AssertNoTag();
}
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册