ソースを参照

Stringify specifics of named constraints (#6444)

Dana Jansens 5 ヶ月 前
コミット
e32190a228

+ 2 - 2
toolchain/check/testdata/generic/extend_type_completion.carbon

@@ -103,14 +103,14 @@ constraint J(N:! i32) {
   extend require impls K(array(i32, N));
 }
 constraint I(N:! i32) {
-  // CHECK:STDERR: fail_constraint_extend_require_impls_does_need_complete_interface.carbon:[[@LINE+3]]:24: note: in `{}` used here [ResolvingSpecificHere]
+  // CHECK:STDERR: fail_constraint_extend_require_impls_does_need_complete_interface.carbon:[[@LINE+3]]:24: note: in `J(-1)` used here [ResolvingSpecificHere]
   // CHECK:STDERR:   extend require impls J(N);
   // CHECK:STDERR:                        ^~~~
   extend require impls J(N);
 }
 
 // I extends J extends K so the type of K is completed, but is invalid.
-// CHECK:STDERR: fail_constraint_extend_require_impls_does_need_complete_interface.carbon:[[@LINE+4]]:1: note: in `{}` used here [ResolvingSpecificHere]
+// CHECK:STDERR: fail_constraint_extend_require_impls_does_need_complete_interface.carbon:[[@LINE+4]]:1: note: in `I(-1)` used here [ResolvingSpecificHere]
 // CHECK:STDERR: var v: I(-1);
 // CHECK:STDERR: ^~~~~~~~~~~~
 // CHECK:STDERR:

+ 6 - 0
toolchain/sem_ir/stringify.cpp

@@ -827,6 +827,12 @@ auto StringifySpecific(const File& sem_ir, SpecificId specific_id)
           sem_ir.interfaces().Get(interface_decl.interface_id), specific_id);
       break;
     }
+    case CARBON_KIND(NamedConstraintDecl constraint_decl): {
+      step_stack.PushEntityName(
+          sem_ir.named_constraints().Get(constraint_decl.named_constraint_id),
+          specific_id);
+      break;
+    }
     case CARBON_KIND(RequireImplsDecl _): {
       step_stack.Push("require");
       break;