@@ -75,21 +75,26 @@ void InferredAssociatedTypesByWitness::dump(llvm::raw_ostream &out,
7575}
7676
7777void InferredTypeWitnessesSolution::dump () const {
78+ const auto numValueWitnesses = ValueWitnesses.size ();
7879 llvm::errs () << " Type Witnesses:\n " ;
7980 for (auto &typeWitness : TypeWitnesses) {
8081 llvm::errs () << " " << typeWitness.first ->getName () << " := " ;
8182 typeWitness.second .first ->print (llvm::errs ());
82- llvm::errs () << " value " << typeWitness.second .second << ' \n ' ;
83+ if (typeWitness.second .second == numValueWitnesses) {
84+ llvm::errs () << " , abstract" ;
85+ } else {
86+ llvm::errs () << " , inferred from $" << typeWitness.second .second ;
87+ }
88+ llvm::errs () << ' \n ' ;
8389 }
8490 llvm::errs () << " Value Witnesses:\n " ;
8591 for (unsigned i : indices (ValueWitnesses)) {
86- auto &valueWitness = ValueWitnesses[i];
87- llvm::errs () << i << " : " << (Decl*)valueWitness.first
88- << ' ' << valueWitness.first ->getBaseName () << ' \n ' ;
89- valueWitness.first ->getDeclContext ()->printContext (llvm::errs ());
90- llvm::errs () << " for " << (Decl*)valueWitness.second
91- << ' ' << valueWitness.second ->getBaseName () << ' \n ' ;
92- valueWitness.second ->getDeclContext ()->printContext (llvm::errs ());
92+ const auto &valueWitness = ValueWitnesses[i];
93+ llvm::errs () << ' $' << i << " :\n " ;
94+ valueWitness.first ->dumpRef (llvm::errs ());
95+ llvm::errs () << " ->\n " ;
96+ valueWitness.second ->dumpRef (llvm::errs ());
97+ llvm::errs () << ' \n ' ;
9398 }
9499}
95100
0 commit comments