Update SemIR yaml and text for multi-file. (#3217)

Building on #3214 and #3215, updates sem_ir yaml to be:

```
- filename: name
  sem_ir: [ ... ]
```

Also, changes the textual format from `package { ... }` to `file
<filename> { ... }`. My thought on packages there is:

```
file "foo.carbon" {
  package MyPackage

  ...
}
```

The reason for putting the file first is that it's easier if we put what
we're grouping on first, whereas the package is an "annotation" on the
file.
This commit is contained in:
Jon Ross-Perkins
2023-09-13 17:08:18 +00:00
committed by GitHub
parent 0b340a2ed2
commit 9ae41b2965
153 changed files with 625 additions and 393 deletions
+1 -1
View File
@@ -132,7 +132,7 @@ MATCHER_P(Sequence, contents,
// Same as testing::VariantWith<ScalarValue>(contents).
// NOLINTNEXTLINE: Expands from GoogleTest.
MATCHER_P(Scalar, value,
"has scalar value " + ::testing::PrintToString(value)) {
"has scalar value " + DescribeMatcher<std::string>(value)) {
::testing::Matcher<ScalarValue> value_matcher = value;
if (auto* map = std::get_if<ScalarValue>(&arg)) {
+1 -1
View File
@@ -15,7 +15,7 @@ auto CheckParseTree(const SemIR::File& builtin_ir,
const Lex::TokenizedBuffer& tokens,
const Parse::Tree& parse_tree, DiagnosticConsumer& consumer,
llvm::raw_ostream* vlog_stream) -> SemIR::File {
auto semantics_ir = SemIR::File(&builtin_ir);
auto semantics_ir = SemIR::File(tokens.filename().str(), &builtin_ir);
Parse::NodeLocationTranslator translator(&tokens, &parse_tree);
ErrorTrackingDiagnosticConsumer err_tracker(consumer);
+1 -1
View File
@@ -10,7 +10,7 @@ fn Run() {
var t: [i32; 1] = F();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "assign_return_value.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc9 = fn_decl @Run
// CHECK:STDOUT: }
+1 -1
View File
@@ -7,7 +7,7 @@
var a: (i32, i32, i32) = (1, 2, 3);
var b: [i32; 3] = a;
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "assign_var.carbon" {
// CHECK:STDOUT: %.loc7_9: type = stub_reference i32
// CHECK:STDOUT: %.loc7_14: type = stub_reference i32
// CHECK:STDOUT: %.loc7_19: type = stub_reference i32
+1 -1
View File
@@ -8,7 +8,7 @@ var a: [i32; 1] = (1,);
var b: [f64; 2] = (11.1, 2.2,);
var c: [(); 5] = ((), (), (), (), (),);
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "base.carbon" {
// CHECK:STDOUT: %.loc7_14: i32 = int_literal 1
// CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32
// CHECK:STDOUT: %a: ref [i32; 1] = var "a"
+1 -1
View File
@@ -9,7 +9,7 @@
// CHECK:STDERR: ^
var a: [1; 39999999999999999993];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_bound_overflow.carbon" {
// CHECK:STDOUT: %.loc10_9: i32 = int_literal 1
// CHECK:STDOUT: %.loc10_12: i32 = int_literal 39999999999999999993
// CHECK:STDOUT: %a: ref <error> = var "a"
+1 -1
View File
@@ -9,7 +9,7 @@
// CHECK:STDERR: ^
var a: [1; 1];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_invalid_type.carbon" {
// CHECK:STDOUT: %.loc10_9: i32 = int_literal 1
// CHECK:STDOUT: %.loc10_12: i32 = int_literal 1
// CHECK:STDOUT: %.loc10_13: type = array_type %.loc10_12, <error>
+1 -1
View File
@@ -9,7 +9,7 @@
// CHECK:STDERR: ^
var a: [i32; 1] = (1, 2, 3);
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_out_of_bound.carbon" {
// CHECK:STDOUT: %.loc10_14: i32 = int_literal 1
// CHECK:STDOUT: %.loc10_15: type = array_type %.loc10_14, i32
// CHECK:STDOUT: %a: ref [i32; 1] = var "a"
+1 -1
View File
@@ -9,7 +9,7 @@
// CHECK:STDERR: ^
var a: [i32; 2] = (1, 2.5);
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_type_mismatch.carbon" {
// CHECK:STDOUT: %.loc10_14: i32 = int_literal 2
// CHECK:STDOUT: %.loc10_15: type = array_type %.loc10_14, i32
// CHECK:STDOUT: %a: ref [i32; 2] = var "a"
+1 -1
View File
@@ -9,5 +9,5 @@
// CHECK:STDERR: ^
var a: [i32; ];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_undefined_bound.carbon" {
// CHECK:STDOUT: }
+1 -1
View File
@@ -6,7 +6,7 @@
var a: [i32; 9] = (1, 2, 3, 4, 5, 6, 7, 8, 9);
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "nine_elements.carbon" {
// CHECK:STDOUT: %.loc7_14: i32 = int_literal 9
// CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32
// CHECK:STDOUT: %a: ref [i32; 9] = var "a"
+27 -25
View File
@@ -6,28 +6,30 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeTypeType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeBoolType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeFloatingPointType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeStringType, type: typeTypeType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: - filename: builtin_nodes.carbon
// CHECK:STDOUT: sem_ir:
// CHECK:STDOUT: - cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeTypeType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeBoolType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeFloatingPointType, type: typeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeStringType, type: typeTypeType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+1 -1
View File
@@ -9,7 +9,7 @@ var test_f64: f64 = 0.1;
var test_str: String = "Test";
var test_type: type = i32;
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "builtin_types.carbon" {
// CHECK:STDOUT: %test_i32: ref i32 = var "test_i32"
// CHECK:STDOUT: %.loc7: i32 = int_literal 0
// CHECK:STDOUT: assign %test_i32, %.loc7
+1 -1
View File
@@ -4,5 +4,5 @@
//
// AUTOUPDATE
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "empty.carbon" {
// CHECK:STDOUT: }
+1 -1
View File
@@ -6,5 +6,5 @@
;
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "empty_decl.carbon" {
// CHECK:STDOUT: }
+1 -1
View File
@@ -11,7 +11,7 @@ fn Main() {
x;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_name_lookup.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -9,7 +9,7 @@
// CHECK:STDERR: ^
var x: type = 42;
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_non_type_as_type.carbon" {
// CHECK:STDOUT: %x: ref type = var "x"
// CHECK:STDOUT: %.loc10: i32 = int_literal 42
// CHECK:STDOUT: assign %x, <error>
@@ -10,7 +10,7 @@ var x: i32;
// CHECK:STDERR: ^
var y: i32 = x.b;
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_qualifier_unsupported.carbon" {
// CHECK:STDOUT: %x: ref i32 = var "x"
// CHECK:STDOUT: %y: ref i32 = var "y"
// CHECK:STDOUT: assign %y, <error>
+27
View File
@@ -0,0 +1,27 @@
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// AUTOUPDATE
// CHECK:STDOUT: file "a.carbon" {
// CHECK:STDOUT: %.loc1 = fn_decl @A
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @A() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT: file "b.carbon" {
// CHECK:STDOUT: %.loc1 = fn_decl @B
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @B() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// --- a.carbon
fn A() {}
// --- b.carbon
fn B() {}
@@ -0,0 +1,95 @@
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// ARGS: compile --phase=check --dump-semantics-ir --dump-raw-semantics-ir %s
//
// Check that we can combine textual IR and raw IR dumping in one compile.
//
// AUTOUPDATE
// CHECK:STDOUT: - filename: a.carbon
// CHECK:STDOUT: sem_ir:
// CHECK:STDOUT: - cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: A,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT:
// CHECK:STDOUT: file "a.carbon" {
// CHECK:STDOUT: %.loc1 = fn_decl @A
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @A() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT: - filename: b.carbon
// CHECK:STDOUT: sem_ir:
// CHECK:STDOUT: - cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: B,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT:
// CHECK:STDOUT: file "b.carbon" {
// CHECK:STDOUT: %.loc1 = fn_decl @B
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @B() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// --- a.carbon
fn A() {}
// --- b.carbon
fn B() {}
+77
View File
@@ -0,0 +1,77 @@
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// ARGS: compile --phase=check --dump-raw-semantics-ir %s
//
// Check that raw IR dumping works as expected.
//
// AUTOUPDATE
// CHECK:STDOUT: - filename: a.carbon
// CHECK:STDOUT: sem_ir:
// CHECK:STDOUT: - cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: A,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: - filename: b.carbon
// CHECK:STDOUT: sem_ir:
// CHECK:STDOUT: - cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: B,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// --- a.carbon
fn A() {}
// --- b.carbon
fn B() {}
+1 -1
View File
@@ -25,7 +25,7 @@ fn F() {
);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "numeric_literals.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -6,7 +6,7 @@
var test_i32: i32 = ((1) + (2));
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "parens.carbon" {
// CHECK:STDOUT: %test_i32: ref i32 = var "test_i32"
// CHECK:STDOUT: %.loc7_23: i32 = int_literal 1
// CHECK:STDOUT: %.loc7_29: i32 = int_literal 2
+87 -85
View File
@@ -12,92 +12,94 @@ fn Foo(n: i32) -> (i32, f64) {
return (n + 2, 3.4);
}
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 2,
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: n,
// CHECK:STDOUT: return,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: nodeFloatingPointType,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: type0,
// CHECK:STDOUT: type2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: - filename: raw_and_textual_ir.carbon
// CHECK:STDOUT: sem_ir:
// CHECK:STDOUT: - cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 2,
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: n,
// CHECK:STDOUT: return,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: nodeFloatingPointType,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: type0,
// CHECK:STDOUT: type2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT:
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "raw_and_textual_ir.carbon" {
// CHECK:STDOUT: %.loc11 = fn_decl @Foo
// CHECK:STDOUT: }
// CHECK:STDOUT:
+86 -84
View File
@@ -12,87 +12,89 @@ fn Foo(n: i32) -> (i32, f64) {
return (n + 2, 3.4);
}
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 2,
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: n,
// CHECK:STDOUT: return,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: nodeFloatingPointType,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: type0,
// CHECK:STDOUT: type2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: - filename: raw_ir.carbon
// CHECK:STDOUT: sem_ir:
// CHECK:STDOUT: - cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 2,
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: n,
// CHECK:STDOUT: return,
// CHECK:STDOUT: ]
// CHECK:STDOUT: types: [
// CHECK:STDOUT: nodeIntegerType,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: nodeFloatingPointType,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ]
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: typeTypeType,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: type0,
// CHECK:STDOUT: type2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2},
// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+1 -1
View File
@@ -12,7 +12,7 @@ fn Foo(n: i32) -> (i32, f64) {
return (n + 2, 3.4);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "textual_ir.carbon" {
// CHECK:STDOUT: %.loc11 = fn_decl @Foo
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -12,7 +12,7 @@ fn F(p: const i32**) -> const (const i32)** {
return p;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "collapse.carbon" {
// CHECK:STDOUT: %.loc11 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -14,7 +14,7 @@ fn G(p: const (const i32)**) -> i32** {
return p;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_collapse.carbon" {
// CHECK:STDOUT: %.loc10 = fn_decl @G
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -16,7 +16,7 @@ fn H() -> i32 {
return G()[0];
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "in_place_tuple_initialization.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc9 = fn_decl @G
// CHECK:STDOUT: %.loc15 = fn_decl @H
+1 -1
View File
@@ -12,7 +12,7 @@ fn Main() {
Echo({});
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "empty_struct.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Echo
// CHECK:STDOUT: %.loc11 = fn_decl @Main
// CHECK:STDOUT: }
+1 -1
View File
@@ -12,7 +12,7 @@ fn Main() {
Echo(());
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "empty_tuple.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Echo
// CHECK:STDOUT: %.loc11 = fn_decl @Main
// CHECK:STDOUT: }
@@ -55,7 +55,7 @@ fn Main() {
Run2(0);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_param_count.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Run0
// CHECK:STDOUT: %.loc8 = fn_decl @Run1
// CHECK:STDOUT: %.loc9 = fn_decl @Run2
@@ -16,7 +16,7 @@ fn Main() {
Run(1.0);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_param_type.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Run
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
@@ -13,7 +13,7 @@ fn Run() {
var x: i32 = Foo();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_return_type_mismatch.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc9 = fn_decl @Run
// CHECK:STDOUT: }
+1 -1
View File
@@ -12,7 +12,7 @@ fn Main() {
var b: i32 = Echo(1);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "i32.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Echo
// CHECK:STDOUT: %.loc11 = fn_decl @Main
// CHECK:STDOUT: }
@@ -11,7 +11,7 @@ fn Main() {
Foo(1 + 2 + 3, 4 + 5, 6);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "more_param_ir.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
+1 -1
View File
@@ -10,7 +10,7 @@ fn Main() {
Foo(1);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_one.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
@@ -11,7 +11,7 @@ fn Main() {
Foo(1,);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_one_comma.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
+1 -1
View File
@@ -10,7 +10,7 @@ fn Main() {
Foo(1, 2);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_two.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
@@ -11,7 +11,7 @@ fn Main() {
Foo(1, 2,);
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_two_comma.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
+1 -1
View File
@@ -10,7 +10,7 @@ fn Main() {
Foo();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_zero.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
@@ -11,7 +11,7 @@ fn Main() {
var b: () = MakeImplicitEmptyTuple();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "return_implicit.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @MakeImplicitEmptyTuple
// CHECK:STDOUT: %.loc10 = fn_decl @Main
// CHECK:STDOUT: }
@@ -8,7 +8,7 @@ fn F();
fn G() { F(); }
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "simple.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc9 = fn_decl @G
// CHECK:STDOUT: }
@@ -12,7 +12,7 @@
// CHECK:STDERR: ^
fn Bar(a: i32, a: i32) {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_param_name_conflict.carbon" {
// CHECK:STDOUT: %.loc13 = fn_decl @Bar
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -8,7 +8,7 @@ fn Foo() {}
fn Bar() {}
fn Baz() {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "order.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc8 = fn_decl @Bar
// CHECK:STDOUT: %.loc9 = fn_decl @Baz
@@ -6,7 +6,7 @@
fn Foo(a: i32) {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_one.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -6,7 +6,7 @@
fn Foo(a: i32,) {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_one_comma.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -6,7 +6,7 @@
fn Foo(a: i32, b: i32) {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_two.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -6,7 +6,7 @@
fn Foo(a: i32, b: i32,) {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_two_comma.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -6,7 +6,7 @@
fn Foo() {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "params_zero.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -7,7 +7,7 @@
fn Foo(a: i32) {}
fn Bar(a: i32) {}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "same_param_name.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
// CHECK:STDOUT: %.loc8 = fn_decl @Bar
// CHECK:STDOUT: }
+1 -1
View File
@@ -17,7 +17,7 @@ fn If(b: bool) {
H();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "else.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc8 = fn_decl @G
// CHECK:STDOUT: %.loc9 = fn_decl @H
@@ -33,7 +33,7 @@ fn If3(b: bool) -> i32 {
// CHECK:STDERR: ^
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_reachable_fallthrough.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @If1
// CHECK:STDOUT: %.loc17 = fn_decl @If2
// CHECK:STDOUT: %.loc27 = fn_decl @If3
+1 -1
View File
@@ -15,7 +15,7 @@ fn VarScope(b: bool) -> i32 {
return n;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_scope.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @VarScope
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -14,7 +14,7 @@ fn If(b: bool) {
G();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "no_else.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc8 = fn_decl @G
// CHECK:STDOUT: %.loc10 = fn_decl @If
+1 -1
View File
@@ -13,7 +13,7 @@ fn If(b: bool) -> i32 {
// Missing return here is OK.
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "unreachable_fallthrough.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @If
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -8,7 +8,7 @@ fn F(b: bool, n: i32, m: i32) -> i32 {
return if b then n + m else m + n;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "basic.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -15,7 +15,7 @@ fn G() -> i32 {
return if false then A() else B();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "constant_condition.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @A
// CHECK:STDOUT: %.loc8 = fn_decl @B
// CHECK:STDOUT: %.loc10 = fn_decl @F
+1 -1
View File
@@ -11,7 +11,7 @@ fn F(b: bool) -> i32 {
return if b then A() else B();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "control_flow.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @A
// CHECK:STDOUT: %.loc8 = fn_decl @B
// CHECK:STDOUT: %.loc10 = fn_decl @F
+1 -1
View File
@@ -8,7 +8,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 {
return if a then if b then 1 else 2 else if c then 3 else 4;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "nested.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -9,7 +9,7 @@ var b: i32 = 1;
var c: i32 = a[0];
var d: i32 = a[b];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "array_element_access.carbon" {
// CHECK:STDOUT: %.loc7_14: i32 = int_literal 2
// CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32
// CHECK:STDOUT: %a: ref [i32; 2] = var "a"
@@ -10,7 +10,7 @@ var a: [i32; 1] = (12,);
// CHECK:STDERR: ^
var b: i32 = a[0xFFFFFFFFFFFFFFFFF];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_array_large_index.carbon" {
// CHECK:STDOUT: %.loc7_14: i32 = int_literal 1
// CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32
// CHECK:STDOUT: %a: ref [i32; 1] = var "a"
@@ -10,7 +10,7 @@ var a: [i32; 1] = (12,);
// CHECK:STDERR: ^
var b: i32 = a[2.6];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_array_non_int_indexing.carbon" {
// CHECK:STDOUT: %.loc7_14: i32 = int_literal 1
// CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32
// CHECK:STDOUT: %a: ref [i32; 1] = var "a"
@@ -10,7 +10,7 @@ var a: [i32; 1] = (12,);
// CHECK:STDERR: ^
var b: i32 = a[2];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_array_out_of_bound_access.carbon" {
// CHECK:STDOUT: %.loc7_14: i32 = int_literal 1
// CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32
// CHECK:STDOUT: %a: ref [i32; 1] = var "a"
@@ -13,7 +13,7 @@ fn Run() {
F()[0];
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_empty_tuple_access.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc9 = fn_decl @Run
// CHECK:STDOUT: }
+1 -1
View File
@@ -11,7 +11,7 @@ fn Main() {
var b: i32 = a[0];
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_name_not_found.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -10,5 +10,5 @@ var a: (i32, i32) = (12, 6);
// CHECK:STDERR: ^
var b: i32 = a[-10];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_negative_indexing.carbon" {
// CHECK:STDOUT: }
@@ -11,7 +11,7 @@ var b: i32 = 0;
// CHECK:STDERR: ^
var c: i32 = a[b];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_non_deterministic_type.carbon" {
// CHECK:STDOUT: %.loc7_9: type = stub_reference i32
// CHECK:STDOUT: %.loc7_14: type = stub_reference i32
// CHECK:STDOUT: %.loc7_17.1: type = tuple_type (type, type)
@@ -11,7 +11,7 @@ fn Main() {
0[1];
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_non_tuple_access.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -11,7 +11,7 @@ var b: (i32,) = a;
// CHECK:STDERR: ^
var c: i32 = b[0xFFFFFFFFFFFFFFFFF];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_tuple_large_index.carbon" {
// CHECK:STDOUT: %.loc7_9: type = stub_reference i32
// CHECK:STDOUT: %.loc7_13.1: type = tuple_type (type)
// CHECK:STDOUT: %.loc7_13.2: (type,) = tuple_literal (%.loc7_9)
@@ -10,7 +10,7 @@ var a: (i32, i32) = (12, 6);
// CHECK:STDERR: ^
var b: i32 = a[2.6];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_tuple_non_int_indexing.carbon" {
// CHECK:STDOUT: %.loc7_9: type = stub_reference i32
// CHECK:STDOUT: %.loc7_14: type = stub_reference i32
// CHECK:STDOUT: %.loc7_17.1: type = tuple_type (type, type)
@@ -10,7 +10,7 @@ var a: (i32, i32) = (12, 6);
// CHECK:STDERR: ^
var b: i32 = a[2];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_tuple_out_of_bound_access.carbon" {
// CHECK:STDOUT: %.loc7_9: type = stub_reference i32
// CHECK:STDOUT: %.loc7_14: type = stub_reference i32
// CHECK:STDOUT: %.loc7_17.1: type = tuple_type (type, type)
+1 -1
View File
@@ -8,7 +8,7 @@ var a: (i32,) = (12,);
var b: (i32,) = a;
var c: i32 = b[0];
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "tuple_element_access.carbon" {
// CHECK:STDOUT: %.loc7_9: type = stub_reference i32
// CHECK:STDOUT: %.loc7_13.1: type = tuple_type (type)
// CHECK:STDOUT: %.loc7_13.2: (type,) = tuple_literal (%.loc7_9)
@@ -10,7 +10,7 @@ fn Run() -> i32 {
return F()[0];
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "tuple_return_value_access.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc9 = fn_decl @Run
// CHECK:STDOUT: }
@@ -6,7 +6,7 @@
fn A() { var n: i32 = 1; if (true) { var n: i32 = 2; } }
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "duplicate_name_same_line.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @A
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -18,7 +18,7 @@ fn Foo.Baz() {
fn Foo.Baz() {
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_duplicate.carbon" {
// CHECK:STDOUT: %.loc7 = namespace {.Baz = %.loc9}
// CHECK:STDOUT: %.loc9 = fn_decl @Baz
// CHECK:STDOUT: %.loc18 = fn_decl @.1
@@ -10,7 +10,7 @@
fn Foo.Baz() {
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_unresolved_scope.carbon" {
// CHECK:STDOUT: %.loc10 = fn_decl @.1
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -17,7 +17,7 @@ fn Bar() {
Foo.Baz();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "function.carbon" {
// CHECK:STDOUT: %.loc7 = namespace {.Baz = %.loc13}
// CHECK:STDOUT: %.loc10 = fn_decl @Baz.1
// CHECK:STDOUT: %.loc13 = fn_decl @Baz.2
+1 -1
View File
@@ -14,7 +14,7 @@ fn Foo.Bar.Baz() {
Foo.Bar.Wiz();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "nested.carbon" {
// CHECK:STDOUT: %.loc7 = namespace {.Bar = %.loc8}
// CHECK:STDOUT: %.loc8 = namespace {.Wiz = %.loc10, .Baz = %.loc13}
// CHECK:STDOUT: %.loc10 = fn_decl @Wiz
+1 -1
View File
@@ -11,7 +11,7 @@ fn And() -> bool {
return F() and G();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "and.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc8 = fn_decl @G
// CHECK:STDOUT: %.loc10 = fn_decl @And
+1 -1
View File
@@ -22,7 +22,7 @@ fn Main() {
*(if true then p else &a) = 10;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "assignment.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -8,7 +8,7 @@ fn Main() -> i32 {
return 12 + 34;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "binary_op.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -45,7 +45,7 @@ fn Main() {
(if true then a else a) = 10;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_assigment_to_non_assignable.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc9 = fn_decl @Main
// CHECK:STDOUT: }
@@ -11,7 +11,7 @@ fn Main() -> i32 {
return 12 + 3.4;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_type_mismatch.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -12,7 +12,7 @@ fn Main() {
a = 5.6;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_type_mismatch_assignment.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -13,7 +13,7 @@ fn Main() -> i32 {
return 12 + 3.4 + 12;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_type_mismatch_once.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -11,7 +11,7 @@ fn Or() -> bool {
return F() or G();
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "or.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: %.loc8 = fn_decl @G
// CHECK:STDOUT: %.loc10 = fn_decl @Or
+1 -1
View File
@@ -8,7 +8,7 @@ fn Not(b: bool) -> bool {
return not b;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "unary_op.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Not
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -9,7 +9,7 @@ fn F() -> i32 {
return *&*&n;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "address_of_deref.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -16,7 +16,7 @@ fn F() {
var t1: i32* = &t[1];
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "address_of_lvalue.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -11,7 +11,7 @@ fn F() -> i32 {
return *p;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "basic.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -82,7 +82,7 @@ fn AddressOfParameter(param: i32) {
var param_addr: i32* = &param;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_address_of_value.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @G
// CHECK:STDOUT: %.loc9 = fn_decl @H
// CHECK:STDOUT: %.loc11 = fn_decl @AddressOfLiteral
@@ -19,7 +19,7 @@ fn Deref(n: i32) {
*{};
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_dereference_not_pointer.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Deref
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -12,7 +12,7 @@
// CHECK:STDERR: ^
var p: *i32;
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_dereference_type.carbon" {
// CHECK:STDOUT: %.loc13: ref <error> = dereference i32
// CHECK:STDOUT: %p: ref <error> = var "p"
// CHECK:STDOUT: }
+1 -1
View File
@@ -11,7 +11,7 @@ fn ConstMismatch(p: const {}*) -> const ({}*) {
return p;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_type_mismatch.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @ConstMismatch
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -9,7 +9,7 @@ fn F(p: const (const (const i32*)*)) -> const i32 {
return **p;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "nested_const.carbon" {
// CHECK:STDOUT: %.loc8 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -12,7 +12,7 @@ fn ConstPtr(p: const i32*) -> (const i32)* {
return p;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "types.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Ptr
// CHECK:STDOUT: %.loc11 = fn_decl @ConstPtr
// CHECK:STDOUT: }
+1 -1
View File
@@ -9,7 +9,7 @@ fn Main() {
var n: i32 = 1 + 1;
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "code_after_return.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -16,7 +16,7 @@ fn F(b: bool) -> i32 {
// Unreachable, no error on missing return.
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "code_after_return_value.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
+1 -1
View File
@@ -10,7 +10,7 @@ fn Main() -> i32 {
// CHECK:STDERR: ^
}
// CHECK:STDOUT: package {
// CHECK:STDOUT: file "fail_missing_return.carbon" {
// CHECK:STDOUT: %.loc7 = fn_decl @Main
// CHECK:STDOUT: }
// CHECK:STDOUT:

Some files were not shown because too many files have changed in this diff Show More