diff --git a/src/Analysis/Engine/Impl/Values/Protocols.cs b/src/Analysis/Engine/Impl/Values/Protocols.cs index 8a095c638..def71b7d7 100644 --- a/src/Analysis/Engine/Impl/Values/Protocols.cs +++ b/src/Analysis/Engine/Impl/Values/Protocols.cs @@ -385,10 +385,13 @@ protected override Protocol UnionMergeTypes(Protocol p) { } class TupleProtocol : IterableProtocol { - internal readonly IAnalysisSet[] _values; + private readonly IAnalysisSet[] _values; public TupleProtocol(ProtocolInfo self, IEnumerable values) : base(self, AnalysisSet.UnionAll(values)) { _values = values.Select(s => s.AsUnion(1)).ToArray(); + + var argTypes = _values.SelectMany(e => e.Select(v => v is IHasQualifiedName qn ? qn.FullyQualifiedName : v.ShortDescription)); + Name = "tuple[{0}]".FormatInvariant(string.Join(", ", argTypes)); } protected override void EnsureMembers(IDictionary members) { @@ -415,7 +418,7 @@ public override IAnalysisSet GetIndex(Node node, AnalysisUnit unit, IAnalysisSet return AnalysisSet.UnionAll(constants.Select(GetItem)); } - public override string Name => "tuple"; + public override string Name { get; } public override IEnumerable> GetRichDescription() { if (_values.Any()) {