Skip to content

Commit

Permalink
Revert symbol display logic
Browse files Browse the repository at this point in the history
  • Loading branch information
jcouv committed May 15, 2020
1 parent 4154f07 commit 758a8be
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,8 @@ private void AddTupleTypeName(INamedTypeSymbol symbol)
}

VisitFieldType(element);
if (!element.IsImplicitlyDeclared && !element.IsDefaultTupleElement())
if (!element.IsImplicitlyDeclared &&
!(symbol.IsGenericType && symbol.IsDefinition)) // C# tuples are generic
{
AddSpace();
builder.Add(CreatePart(SymbolDisplayPartKind.FieldName, symbol, element.Name));
Expand Down
6 changes: 4 additions & 2 deletions src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTupleTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5993,7 +5993,7 @@ public void CreateTupleTypeSymbol_WithSomeNames()
var tupleWithSomeNames = comp.CreateTupleTypeSymbol(vt3, ImmutableArray.Create(null, "Item2", "Charlie"));

Assert.True(tupleWithSomeNames.IsTupleType);
Assert.Equal("(System.Int32, System.String, System.Int32 Charlie)[missing]", tupleWithSomeNames.ToTestDisplayString());
Assert.Equal("(System.Int32, System.String Item2, System.Int32 Charlie)[missing]", tupleWithSomeNames.ToTestDisplayString());
Assert.Equal(new[] { null, "Item2", "Charlie" }, GetTupleElementNames(tupleWithSomeNames));
Assert.Equal(new[] { "System.Int32", "System.String", "System.Int32" }, ElementTypeNames(tupleWithSomeNames));
Assert.Equal(SymbolKind.ErrorType, tupleWithSomeNames.Kind);
Expand Down Expand Up @@ -27680,13 +27680,15 @@ class C
var comp = CreateCompilation(source);
var m = (MethodSymbol)comp.GetMember("C.M");
var tuple = m.ReturnType;
Assert.Equal("(System.Int32, System.Int32)", tuple.ToTestDisplayString());
Assert.Equal("(System.Int32 Item1, System.Int32 Item2)", tuple.ToTestDisplayString());
Assert.IsType<ConstructedNamedTypeSymbol>(tuple);

var item1 = tuple.GetMember<TupleElementFieldSymbol>("Item1");
Assert.Equal(0, item1.TupleElementIndex);

var item1Underlying = item1.TupleUnderlyingField;
Assert.IsType<SubstitutedFieldSymbol>(item1Underlying);
Assert.Equal("System.Int32 (System.Int32 Item1, System.Int32 Item2).Item1", item1Underlying.ToTestDisplayString());
Assert.Equal(0, item1Underlying.TupleElementIndex);
Assert.Same(item1Underlying, item1Underlying.TupleUnderlyingField);

Expand Down

0 comments on commit 758a8be

Please sign in to comment.