This repository was archived by the owner on Apr 14, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +36
-1
lines changed
src/Analysis/Engine/Impl/Values Expand file tree Collapse file tree 1 file changed +36
-1
lines changed Original file line number Diff line number Diff line change 1717using System ;
1818using System . Collections . Generic ;
1919using System . Linq ;
20+ using System . Text ;
2021using Microsoft . PythonTools . Analysis . Infrastructure ;
2122using Microsoft . PythonTools . Interpreter ;
2223using Microsoft . PythonTools . Parsing ;
@@ -389,7 +390,41 @@ class TupleProtocol : IterableProtocol {
389390
390391 public TupleProtocol ( ProtocolInfo self , IEnumerable < IAnalysisSet > values ) : base ( self , AnalysisSet . UnionAll ( values ) ) {
391392 _values = values . Select ( s => s . AsUnion ( 1 ) ) . ToArray ( ) ;
392- Name = "tuple[{0}]" . FormatInvariant ( string . Join ( ", " , _values . Select ( v => v . GetShortDescriptions ( ) ) ) ) ;
393+ Name = GetNameFromValues ( ) ;
394+ }
395+
396+ private string GetNameFromValues ( ) {
397+ // Enumerate manually since SelectMany drops empty/unknown values
398+ var sb = new StringBuilder ( "tuple[" ) ;
399+ for ( var i = 0 ; i < _values . Length ; i ++ ) {
400+ if ( i > 0 ) {
401+ sb . Append ( ", " ) ;
402+ }
403+ sb . Append ( GetParameterString ( _values [ i ] . ToArray ( ) ) ) ;
404+ }
405+ sb . Append ( ']' ) ;
406+ return sb . ToString ( ) ;
407+ }
408+
409+ private string GetParameterString ( AnalysisValue [ ] sets ) {
410+ if ( sets . Length == 0 ) {
411+ return "?" ;
412+ }
413+ var sb = new StringBuilder ( ) ;
414+ if ( sets . Length > 1 ) {
415+ sb . Append ( '[' ) ;
416+ }
417+ for ( var i = 0 ; i < sets . Length ; i ++ ) {
418+ if ( i > 0 ) {
419+ sb . Append ( ", " ) ;
420+ }
421+ var desc = sets [ i ] is IHasQualifiedName qn ? qn . FullyQualifiedName : sets [ i ] . ShortDescription ;
422+ sb . Append ( desc ) ;
423+ }
424+ if ( sets . Length > 1 ) {
425+ sb . Append ( ']' ) ;
426+ }
427+ return sb . ToString ( ) ;
393428 }
394429
395430 protected override void EnsureMembers ( IDictionary < string , IAnalysisSet > members ) {
You can’t perform that action at this time.
0 commit comments