Unify DeclaredName and DesignatedName as just Identifier (#2939)

This is just a simplification: I think these different forms are getting in the way more than they're helping, particularly as I was looking into namespace functionality. The handling in semantics can be identical, providing a more uniform behavior.
This commit is contained in:
Jon Ross-Perkins
2023-06-22 16:20:06 -07:00
committed by GitHub
parent 2e7ce09c34
commit 5a90f660b9
188 changed files with 487 additions and 498 deletions
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, return_type: type0, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type0, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -13,8 +13,8 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Echo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -25,7 +25,7 @@
// CHECK:STDOUT: {kind: StructType, arg0: block0, type: typeTypeType},
// CHECK:STDOUT: {kind: StructValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+2, type: type0},
@@ -6,8 +6,8 @@
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, body: block2},
// CHECK:STDOUT: {name: str2, param_refs: block4, body: block5},
// CHECK:STDOUT: {name: str4, param_refs: block7, body: block8},
// CHECK:STDOUT: {name: str1, param_refs: block4, body: block5},
// CHECK:STDOUT: {name: str3, param_refs: block7, body: block8},
// CHECK:STDOUT: {name: str5, param_refs: block0, body: block9},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -22,10 +22,10 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Run0,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Run1,
// CHECK:STDOUT: b,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Run2,
// CHECK:STDOUT: b,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -35,12 +35,12 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+1, type: type1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+4, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+4, type: type1},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+6, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str4, arg1: node+6, type: type1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function2},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function3},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -14,8 +14,8 @@
// CHECK:STDOUT: {mantissa: 10, exponent: -1, is_decimal: 1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Run,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -25,7 +25,7 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2},
+3 -3
View File
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, return_type: type0, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type0, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -14,8 +14,8 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Echo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: b,
// CHECK:STDOUT: ]
@@ -25,7 +25,7 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str3, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str4, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -19,10 +19,10 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: b,
// CHECK:STDOUT: c,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -31,11 +31,11 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+4, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+4, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -14,8 +14,8 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -24,7 +24,7 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -15,8 +15,8 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -25,7 +25,7 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str2, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str3, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -15,9 +15,9 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: b,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -26,9 +26,9 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str2, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str3, param_refs: block0, body: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -17,9 +17,9 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: b,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -28,9 +28,9 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
@@ -5,15 +5,15 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Bar,
// CHECK:STDOUT: a,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
@@ -21,9 +21,9 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -5,15 +5,15 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
@@ -21,7 +21,7 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -5,15 +5,15 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
@@ -21,7 +21,7 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -5,16 +5,16 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str2, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: b,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
@@ -22,9 +22,9 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -5,16 +5,16 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str2, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: b,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
@@ -22,9 +22,9 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -5,7 +5,7 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str1, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block6, body: block7},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
@@ -13,8 +13,8 @@
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: a,
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: a,
// CHECK:STDOUT: Bar,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
@@ -23,10 +23,10 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+3, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+3, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [