Build an evaluation block for the definition region of a generic. (#4131)

This commit is contained in:
Richard Smith
2024-07-16 00:16:48 +00:00
committed by GitHub
parent efea072be3
commit 5006838f1c
23 changed files with 145 additions and 104 deletions
+7 -6
View File
@@ -24,6 +24,7 @@ fn G(T:! type) {
// CHECK:STDOUT: %.3: type = array_type %.2, %T [symbolic]
// CHECK:STDOUT: %.4: type = ptr_type %.3 [symbolic]
// CHECK:STDOUT: %array: %.3 = tuple_value () [symbolic]
// CHECK:STDOUT: %.5: type = ptr_type @G.%.loc13_17 (%.3) [symbolic]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file {
@@ -42,14 +43,14 @@ fn G(T:! type) {
// CHECK:STDOUT: fn @G(%T: type)
// CHECK:STDOUT: generic [%T: type] {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %T.ref: type = name_ref T, %T [symbolic = constants.%T]
// CHECK:STDOUT: %T.ref: type = name_ref T, %T [symbolic = %T.ref (constants.%T)]
// CHECK:STDOUT: %.loc13_16: i32 = int_literal 0 [template = constants.%.2]
// CHECK:STDOUT: %.loc13_17: type = array_type %.loc13_16, %T [symbolic = constants.%.3]
// CHECK:STDOUT: %arr.var: ref %.3 = var arr
// CHECK:STDOUT: %arr: ref %.3 = bind_name arr, %arr.var
// CHECK:STDOUT: %.loc13_17: type = array_type %.loc13_16, %T [symbolic = %.loc13_17 (constants.%.3)]
// CHECK:STDOUT: %arr.var: ref @G.%.loc13_17 (%.3) = var arr
// CHECK:STDOUT: %arr: ref @G.%.loc13_17 (%.3) = bind_name arr, %arr.var
// CHECK:STDOUT: %.loc13_22.1: %.1 = tuple_literal ()
// CHECK:STDOUT: %.loc13_22.2: init %.3 = array_init () to %arr.var [symbolic = constants.%array]
// CHECK:STDOUT: %.loc13_23: init %.3 = converted %.loc13_22.1, %.loc13_22.2 [symbolic = constants.%array]
// CHECK:STDOUT: %.loc13_22.2: init @G.%.loc13_17 (%.3) = array_init () to %arr.var [symbolic = %.loc13_22.2 (constants.%array)]
// CHECK:STDOUT: %.loc13_23: init @G.%.loc13_17 (%.3) = converted %.loc13_22.1, %.loc13_22.2 [symbolic = %.loc13_22.2 (constants.%array)]
// CHECK:STDOUT: assign %arr.var, %.loc13_23
// CHECK:STDOUT: return
// CHECK:STDOUT: }