From e73207429f7e48fb8b221e27294aff4dd143a999 Mon Sep 17 00:00:00 2001 From: Jon Ross-Perkins Date: Thu, 18 May 2023 11:42:03 -0700 Subject: [PATCH] Adjust handling of values in calls and structs (#2824) Previously, IR for arguments in calls and struct values was separated out. This merges it back in. Additionally, parameters for functions and struct types had their own IR; the block is still there, but there's a TODO to decide what to do with it. In the LLVM IR, this has the consequence of emitting expressions that are inputs to a call or struct value within the scope of the function, which is pretty much where it should be. Importantly it happens before the call is encountered. This change also tinkers with the int and real literal lowering. I'm pretty sure both are still wrong, but was having trouble figuring out a "better" way to do it, and this seems like it'll work for now. --- .../testdata/semantics_builtin_nodes.carbon | 2 - toolchain/lowering/lowering_context.cpp | 2 +- toolchain/lowering/lowering_handle.cpp | 61 +++++++++++-------- .../testdata/struct/member_access.carbon | 12 ++-- .../lowering/testdata/struct/one_entry.carbon | 6 +- .../testdata/struct/two_entries.carbon | 8 ++- toolchain/semantics/semantics_context.cpp | 15 ++--- toolchain/semantics/semantics_context.h | 19 ++---- toolchain/semantics/semantics_handle.cpp | 16 +++-- .../semantics_handle_call_expression.cpp | 9 ++- .../semantics/semantics_handle_function.cpp | 11 ++-- .../semantics/semantics_handle_struct.cpp | 17 +++--- toolchain/semantics/semantics_ir.cpp | 3 +- toolchain/semantics/semantics_ir.h | 26 +------- toolchain/semantics/semantics_ir_test.cpp | 1 - toolchain/semantics/semantics_node.h | 23 +++---- toolchain/semantics/semantics_node_stack.cpp | 7 +++ toolchain/semantics/semantics_node_stack.h | 13 +++- .../testdata/basics/builtin_types.carbon | 2 - .../semantics/testdata/basics/empty.carbon | 2 - .../testdata/basics/empty_decl.carbon | 2 - .../testdata/basics/fail_name_lookup.carbon | 4 +- .../designators/fail_unsupported.carbon | 2 - .../function/call/empty_struct.carbon | 15 ++--- .../function/call/fail_param_count.carbon | 38 +++++------- .../function/call/fail_param_type.carbon | 8 +-- .../call/fail_return_type_mismatch.carbon | 9 +-- .../testdata/function/call/i32.carbon | 15 ++--- .../function/call/more_param_ir.carbon | 15 ++--- .../testdata/function/call/params_one.carbon | 15 ++--- .../function/call/params_one_comma.carbon | 24 +++----- .../testdata/function/call/params_two.carbon | 15 ++--- .../function/call/params_two_comma.carbon | 28 +++------ .../testdata/function/call/params_zero.carbon | 9 +-- .../fail_param_name_conflict.carbon | 4 +- .../testdata/function/definition/order.carbon | 8 +-- .../function/definition/params_one.carbon | 4 +- .../definition/params_one_comma.carbon | 4 +- .../function/definition/params_two.carbon | 4 +- .../definition/params_two_comma.carbon | 4 +- .../function/definition/params_zero.carbon | 4 +- .../definition/same_param_name.carbon | 6 +- .../testdata/operators/binary_op.carbon | 4 +- .../operators/fail_type_mismatch.carbon | 4 +- .../operators/fail_type_mismatch_once.carbon | 4 +- .../testdata/return/fail_type_mismatch.carbon | 4 +- .../return/fail_value_disallowed.carbon | 4 +- .../testdata/return/fail_value_missing.carbon | 4 +- .../semantics/testdata/return/no_value.carbon | 4 +- .../semantics/testdata/return/struct.carbon | 28 ++++----- .../semantics/testdata/return/value.carbon | 4 +- .../semantics/testdata/struct/empty.carbon | 2 - .../testdata/struct/fail_assign_empty.carbon | 12 ++-- .../struct/fail_assign_to_empty.carbon | 12 ++-- .../struct/fail_field_name_mismatch.carbon | 18 ++---- .../struct/fail_field_type_mismatch.carbon | 18 ++---- .../struct/fail_member_access_type.carbon | 18 ++---- .../struct/fail_non_member_access.carbon | 18 ++---- .../struct/fail_too_few_values.carbon | 20 +++--- .../testdata/struct/fail_type_assign.carbon | 14 ++--- .../testdata/struct/fail_value_as_type.carbon | 16 ++--- .../testdata/struct/member_access.carbon | 24 +++----- .../testdata/struct/one_entry.carbon | 24 +++----- .../testdata/struct/two_entries.carbon | 32 ++++------ toolchain/semantics/testdata/var/decl.carbon | 4 +- .../testdata/var/decl_with_init.carbon | 4 +- .../testdata/var/fail_duplicate_decl.carbon | 4 +- .../var/fail_init_type_mismatch.carbon | 4 +- .../testdata/var/fail_init_with_self.carbon | 4 +- .../var/fail_lookup_outside_scope.carbon | 4 +- .../var/fail_storage_is_literal.carbon | 4 +- .../semantics/testdata/var/global_decl.carbon | 2 - .../testdata/var/global_decl_with_init.carbon | 2 - .../testdata/var/global_lookup.carbon | 2 - .../var/global_lookup_in_scope.carbon | 4 +- .../semantics/testdata/var/lookup.carbon | 4 +- 76 files changed, 304 insertions(+), 518 deletions(-) diff --git a/toolchain/driver/testdata/semantics_builtin_nodes.carbon b/toolchain/driver/testdata/semantics_builtin_nodes.carbon index e00d352f5799..4b95b89cb8c8 100644 --- a/toolchain/driver/testdata/semantics_builtin_nodes.carbon +++ b/toolchain/driver/testdata/semantics_builtin_nodes.carbon @@ -5,8 +5,6 @@ // RUN: %{carbon} dump semantics-ir --include_builtins %s | \ // RUN: %{FileCheck-strict} // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/lowering/lowering_context.cpp b/toolchain/lowering/lowering_context.cpp index e5d55756b74a..28398bef0cf8 100644 --- a/toolchain/lowering/lowering_context.cpp +++ b/toolchain/lowering/lowering_context.cpp @@ -78,7 +78,7 @@ auto LoweringContext::BuildLoweredNodeAsType(SemanticsNodeId node_id) auto node = semantics_ir_->GetNode(node_id); switch (node.kind()) { case SemanticsNodeKind::StructType: { - auto refs = semantics_ir_->GetNodeBlock(node.GetAsStructType().second); + auto refs = semantics_ir_->GetNodeBlock(node.GetAsStructType()); llvm::SmallVector subtypes; subtypes.reserve(refs.size()); for (auto ref_id : refs) { diff --git a/toolchain/lowering/lowering_handle.cpp b/toolchain/lowering/lowering_handle.cpp index bdc06ffe0e87..7b8c461c39db 100644 --- a/toolchain/lowering/lowering_handle.cpp +++ b/toolchain/lowering/lowering_handle.cpp @@ -113,16 +113,27 @@ auto LoweringHandleFunctionDefinition(LoweringContext& context, auto LoweringHandleIntegerLiteral(LoweringContext& context, SemanticsNodeId node_id, SemanticsNode node) -> void { - SemanticsIntegerLiteralId int_id = node.GetAsIntegerLiteral(); - llvm::APInt i = context.semantics_ir().GetIntegerLiteral(int_id); - llvm::Value* v = context.builder().getInt32(i.getLimitedValue()); + llvm::APInt i = + context.semantics_ir().GetIntegerLiteral(node.GetAsIntegerLiteral()); + // TODO: This won't offer correct semantics, but seems close enough for now. + llvm::Value* v = + llvm::ConstantInt::get(context.builder().getInt32Ty(), i.getSExtValue()); context.SetLoweredNodeAsValue(node_id, v); } -auto LoweringHandleRealLiteral(LoweringContext& /*context*/, - SemanticsNodeId /*node_id*/, SemanticsNode node) +auto LoweringHandleRealLiteral(LoweringContext& context, + SemanticsNodeId node_id, SemanticsNode node) -> void { - CARBON_FATAL() << "TODO: Add support: " << node; + SemanticsRealLiteral real = + context.semantics_ir().GetRealLiteral(node.GetAsRealLiteral()); + // TODO: This will probably have overflow issues, and should be fixed. + double val = + real.mantissa.getSExtValue() * + std::pow((real.is_decimal ? 10 : 2), real.exponent.getSExtValue()); + llvm::APFloat llvm_val(val); + context.SetLoweredNodeAsValue( + node_id, + llvm::ConstantFP::get(context.builder().getDoubleTy(), llvm_val)); } auto LoweringHandleReturn(LoweringContext& context, SemanticsNodeId /*node_id*/, @@ -163,8 +174,8 @@ auto LoweringHandleStructType(LoweringContext& /*context*/, auto LoweringHandleStructTypeField(LoweringContext& /*context*/, SemanticsNodeId /*node_id*/, - SemanticsNode node) -> void { - CARBON_FATAL() << "TODO: Add support: " << node; + SemanticsNode /*node*/) -> void { + // No action to take. } auto LoweringHandleStructValue(LoweringContext& context, @@ -174,30 +185,28 @@ auto LoweringHandleStructValue(LoweringContext& context, auto* alloca = context.builder().CreateAlloca(type); context.SetLoweredNodeAsValue(node_id, alloca); - // TODO: Figure out changes to flow so that values are calculated for store. - // Right now, the struct value IR is unevaluated. - // auto refs = - // context.semantics_ir().GetNodeBlock(node.GetAsStructValue().second); - // for (int i = 0; i < static_cast(refs.size()); ++i) { - // auto* gep = context.builder().CreateStructGEP(type, alloca, i); - // context.builder().CreateStore(context.GetLoweredNodeAsValue(refs[i]), - // gep); - // } + auto refs = context.semantics_ir().GetNodeBlock(node.GetAsStructValue()); + for (int i = 0; i < static_cast(refs.size()); ++i) { + auto* gep = context.builder().CreateStructGEP(type, alloca, i); + context.builder().CreateStore(context.GetLoweredNodeAsValue(refs[i]), gep); + } } -auto LoweringHandleStubReference(LoweringContext& /*context*/, - SemanticsNodeId /*node_id*/, - SemanticsNode node) -> void { - CARBON_FATAL() << "TODO: Add support: " << node; +auto LoweringHandleStubReference(LoweringContext& context, + SemanticsNodeId node_id, SemanticsNode node) + -> void { + context.SetLoweredNodeAsValue( + node_id, context.GetLoweredNodeAsValue(node.GetAsStubReference())); } auto LoweringHandleVarStorage(LoweringContext& context, SemanticsNodeId node_id, SemanticsNode node) -> void { - // TODO: This doesn't handle globals. Also, LLVM requires globals to have a - // name. Do we want to generate a name, which would need to be consistent - // across translation units, or use the given name, which requires either - // looking ahead for BindName or restructuring semantics, either of which - // affects the destructuring due to the difference in storage? + // TODO: This doesn't handle globals. Also, LLVM requires globals to have + // a name. Do we want to generate a name, which would need to be + // consistent across translation units, or use the given name, which + // requires either looking ahead for BindName or restructuring semantics, + // either of which affects the destructuring due to the difference in + // storage? auto* alloca = context.builder().CreateAlloca( context.GetLoweredNodeAsType(node.type_id())); context.SetLoweredNodeAsValue(node_id, alloca); diff --git a/toolchain/lowering/testdata/struct/member_access.carbon b/toolchain/lowering/testdata/struct/member_access.carbon index ec52543a351d..b4fc39fd55c3 100644 --- a/toolchain/lowering/testdata/struct/member_access.carbon +++ b/toolchain/lowering/testdata/struct/member_access.carbon @@ -13,12 +13,16 @@ // CHECK:STDOUT: entry: // CHECK:STDOUT: %0 = alloca %0, align 8 // CHECK:STDOUT: %1 = alloca %1, align 8 +// CHECK:STDOUT: %2 = getelementptr inbounds %1, ptr %1, i32 0, i32 0 +// CHECK:STDOUT: store double 0.000000e+00, ptr %2, align 8 +// CHECK:STDOUT: %3 = getelementptr inbounds %1, ptr %1, i32 0, i32 1 +// CHECK:STDOUT: store i32 1, ptr %3, align 4 // CHECK:STDOUT: store ptr %1, ptr %0, align 8 -// CHECK:STDOUT: %2 = alloca i32, align 4 -// CHECK:STDOUT: %3 = getelementptr inbounds %0, ptr %0, i32 0, i32 1 -// CHECK:STDOUT: store ptr %3, ptr %2, align 8 // CHECK:STDOUT: %4 = alloca i32, align 4 -// CHECK:STDOUT: store ptr %2, ptr %4, align 8 +// CHECK:STDOUT: %5 = getelementptr inbounds %0, ptr %0, i32 0, i32 1 +// CHECK:STDOUT: store ptr %5, ptr %4, align 8 +// CHECK:STDOUT: %6 = alloca i32, align 4 +// CHECK:STDOUT: store ptr %4, ptr %6, align 8 // CHECK:STDOUT: ret i32 0 // CHECK:STDOUT: } diff --git a/toolchain/lowering/testdata/struct/one_entry.carbon b/toolchain/lowering/testdata/struct/one_entry.carbon index bf0358681ef0..ae71de2682e6 100644 --- a/toolchain/lowering/testdata/struct/one_entry.carbon +++ b/toolchain/lowering/testdata/struct/one_entry.carbon @@ -14,9 +14,11 @@ // CHECK:STDOUT: entry: // CHECK:STDOUT: %0 = alloca %0, align 8 // CHECK:STDOUT: %1 = alloca %1, align 8 +// CHECK:STDOUT: %2 = getelementptr inbounds %1, ptr %1, i32 0, i32 0 +// CHECK:STDOUT: store i32 4, ptr %2, align 4 // CHECK:STDOUT: store ptr %1, ptr %0, align 8 -// CHECK:STDOUT: %2 = alloca %2, align 8 -// CHECK:STDOUT: store ptr %0, ptr %2, align 8 +// CHECK:STDOUT: %3 = alloca %2, align 8 +// CHECK:STDOUT: store ptr %0, ptr %3, align 8 // CHECK:STDOUT: ret i32 0 // CHECK:STDOUT: } diff --git a/toolchain/lowering/testdata/struct/two_entries.carbon b/toolchain/lowering/testdata/struct/two_entries.carbon index 9deb4e155507..e07b5e081523 100644 --- a/toolchain/lowering/testdata/struct/two_entries.carbon +++ b/toolchain/lowering/testdata/struct/two_entries.carbon @@ -14,9 +14,13 @@ // CHECK:STDOUT: entry: // CHECK:STDOUT: %0 = alloca %0, align 8 // CHECK:STDOUT: %1 = alloca %1, align 8 +// CHECK:STDOUT: %2 = getelementptr inbounds %1, ptr %1, i32 0, i32 0 +// CHECK:STDOUT: store i32 1, ptr %2, align 4 +// CHECK:STDOUT: %3 = getelementptr inbounds %1, ptr %1, i32 0, i32 1 +// CHECK:STDOUT: store i32 2, ptr %3, align 4 // CHECK:STDOUT: store ptr %1, ptr %0, align 8 -// CHECK:STDOUT: %2 = alloca %2, align 8 -// CHECK:STDOUT: store ptr %0, ptr %2, align 8 +// CHECK:STDOUT: %4 = alloca %2, align 8 +// CHECK:STDOUT: store ptr %0, ptr %4, align 8 // CHECK:STDOUT: ret i32 0 // CHECK:STDOUT: } diff --git a/toolchain/semantics/semantics_context.cpp b/toolchain/semantics/semantics_context.cpp index 63a4fafb7b16..e0b813e0da53 100644 --- a/toolchain/semantics/semantics_context.cpp +++ b/toolchain/semantics/semantics_context.cpp @@ -154,8 +154,8 @@ auto SemanticsContext::PopScope() -> void { } auto SemanticsContext::ImplicitAsForArgs( - SemanticsNodeBlockId /*arg_ir_id*/, SemanticsNodeBlockId arg_refs_id, - ParseTree::Node param_parse_node, SemanticsNodeBlockId param_refs_id, + SemanticsNodeBlockId arg_refs_id, ParseTree::Node param_parse_node, + SemanticsNodeBlockId param_refs_id, DiagnosticEmitter::DiagnosticBuilder* diagnostic) -> bool { // If both arguments and parameters are empty, return quickly. Otherwise, // we'll fetch both so that errors are consistent. @@ -292,10 +292,8 @@ auto SemanticsContext::CanImplicitAsStruct(SemanticsNode value_type, as_type.kind() != SemanticsNodeKind::StructType) { return false; } - auto value_type_refs = - semantics_->GetNodeBlock(value_type.GetAsStructType().second); - auto as_type_refs = - semantics_->GetNodeBlock(as_type.GetAsStructType().second); + auto value_type_refs = semantics_->GetNodeBlock(value_type.GetAsStructType()); + auto as_type_refs = semantics_->GetNodeBlock(as_type.GetAsStructType()); if (value_type_refs.size() != as_type_refs.size()) { return false; } @@ -314,7 +312,6 @@ auto SemanticsContext::CanImplicitAsStruct(SemanticsNode value_type, auto SemanticsContext::ParamOrArgStart() -> void { params_or_args_stack_.Push(); - node_block_stack_.Push(); } auto SemanticsContext::ParamOrArgComma(bool for_args) -> void { @@ -322,11 +319,11 @@ auto SemanticsContext::ParamOrArgComma(bool for_args) -> void { } auto SemanticsContext::ParamOrArgEnd(bool for_args, ParseNodeKind start_kind) - -> std::pair { + -> SemanticsNodeBlockId { if (parse_tree_->node_kind(node_stack_.PeekParseNode()) != start_kind) { ParamOrArgSave(for_args); } - return {node_block_stack_.Pop(), params_or_args_stack_.Pop()}; + return params_or_args_stack_.Pop(); } auto SemanticsContext::ParamOrArgSave(bool for_args) -> void { diff --git a/toolchain/semantics/semantics_context.h b/toolchain/semantics/semantics_context.h index 91010059084b..29d122264595 100644 --- a/toolchain/semantics/semantics_context.h +++ b/toolchain/semantics/semantics_context.h @@ -75,8 +75,8 @@ class SemanticsContext { // future we may want to remember the right implicit conversions to do for // valid cases in order to efficiently handle generics. auto ImplicitAsForArgs( - SemanticsNodeBlockId arg_ir_id, SemanticsNodeBlockId arg_refs_id, - ParseTree::Node param_parse_node, SemanticsNodeBlockId param_refs_id, + SemanticsNodeBlockId arg_refs_id, ParseTree::Node param_parse_node, + SemanticsNodeBlockId param_refs_id, DiagnosticEmitter::DiagnosticBuilder* diagnostic) -> bool; @@ -95,9 +95,9 @@ class SemanticsContext { // Detects whether there's an entry to push. On return, the top of // node_stack_ will be start_kind, and the caller should do type-specific - // processing. Returns a pair of {ir_id, refs_id}. + // processing. Returns refs_id. auto ParamOrArgEnd(bool for_args, ParseNodeKind start_kind) - -> std::pair; + -> SemanticsNodeBlockId; // Saves a parameter from the top block in node_stack_ to the top block in // params_or_args_stack_. If for_args, adds a StubReference of the previous @@ -127,11 +127,6 @@ class SemanticsContext { return args_type_info_stack_; } - auto finished_params_stack() -> llvm::SmallVector< - std::pair>& { - return finished_params_stack_; - } - auto return_scope_stack() -> llvm::SmallVector& { return return_scope_stack_; } @@ -226,12 +221,6 @@ class SemanticsContext { // for a type separate from the literal arguments. SemanticsNodeBlockStack args_type_info_stack_; - // Completed parameters that are held temporarily on a side-channel for a - // function. This can't use node_stack_ because it has space for only one - // value, whereas parameters return two values. - llvm::SmallVector> - finished_params_stack_; - // A stack of return scopes; i.e., targets for `return`. Inside a function, // this will be a FunctionDeclaration. llvm::SmallVector return_scope_stack_; diff --git a/toolchain/semantics/semantics_handle.cpp b/toolchain/semantics/semantics_handle.cpp index 7699b37fcd62..cb8acc9b148b 100644 --- a/toolchain/semantics/semantics_handle.cpp +++ b/toolchain/semantics/semantics_handle.cpp @@ -79,8 +79,7 @@ auto SemanticsHandleDesignatorExpression(SemanticsContext& context, switch (base_type.kind()) { case SemanticsNodeKind::StructType: { - auto refs = - context.semantics().GetNodeBlock(base_type.GetAsStructType().second); + auto refs = context.semantics().GetNodeBlock(base_type.GetAsStructType()); // TODO: Do we need to optimize this with a lookup table for O(1)? for (int i = 0; i < static_cast(refs.size()); ++i) { auto ref = context.semantics().GetNode(refs[i]); @@ -307,14 +306,20 @@ auto SemanticsHandleNamedConstraintIntroducer(SemanticsContext& context, auto SemanticsHandleParameterList(SemanticsContext& context, ParseTree::Node parse_node) -> bool { - auto [ir_id, refs_id] = context.ParamOrArgEnd( + auto refs_id = context.ParamOrArgEnd( /*for_args=*/false, ParseNodeKind::ParameterListStart); + // TODO: This contains the IR block for parameters. At present, it's just + // loose, but it's not strictly required for parameter refs; we should either + // stop constructing it completely or, if it turns out to be needed, store it. + // Note, the underlying issue is that the LLVM IR has nowhere clear to emit, + // so changing storage would require addressing that problem. For comparison + // with function calls, the IR needs to be emitted prior to the call. + context.node_block_stack().Pop(); context.PopScope(); context.node_stack().PopAndDiscardSoloParseNode( ParseNodeKind::ParameterListStart); - context.finished_params_stack().push_back({ir_id, refs_id}); - context.node_stack().Push(parse_node); + context.node_stack().Push(parse_node, refs_id); return true; } @@ -328,6 +333,7 @@ auto SemanticsHandleParameterListStart(SemanticsContext& context, ParseTree::Node parse_node) -> bool { context.PushScope(); context.node_stack().Push(parse_node); + context.node_block_stack().Push(); context.ParamOrArgStart(); return true; } diff --git a/toolchain/semantics/semantics_handle_call_expression.cpp b/toolchain/semantics/semantics_handle_call_expression.cpp index a3646622e220..bfa8a0c2bb8d 100644 --- a/toolchain/semantics/semantics_handle_call_expression.cpp +++ b/toolchain/semantics/semantics_handle_call_expression.cpp @@ -8,7 +8,7 @@ namespace Carbon { auto SemanticsHandleCallExpression(SemanticsContext& context, ParseTree::Node parse_node) -> bool { - auto [ir_id, refs_id] = context.ParamOrArgEnd( + auto refs_id = context.ParamOrArgEnd( /*for_args=*/true, ParseNodeKind::CallExpressionStart); // TODO: Convert to call expression. @@ -29,21 +29,20 @@ auto SemanticsHandleCallExpression(SemanticsContext& context, CARBON_DIAGNOSTIC(NoMatchingCall, Error, "No matching callable was found."); auto diagnostic = context.emitter().Build(call_expr_parse_node, NoMatchingCall); - if (!context.ImplicitAsForArgs(ir_id, refs_id, name_node.parse_node(), + if (!context.ImplicitAsForArgs(refs_id, name_node.parse_node(), callable.param_refs_id, &diagnostic)) { diagnostic.Emit(); context.node_stack().Push(parse_node, SemanticsNodeId::BuiltinInvalidType); return true; } - CARBON_CHECK(context.ImplicitAsForArgs(ir_id, refs_id, name_node.parse_node(), + CARBON_CHECK(context.ImplicitAsForArgs(refs_id, name_node.parse_node(), callable.param_refs_id, /*diagnostic=*/nullptr)); - auto call_id = context.semantics().AddCall({ir_id, refs_id}); // TODO: Propagate return types from callable. auto call_node_id = context.AddNode(SemanticsNode::Call::Make( - call_expr_parse_node, callable.return_type_id, call_id, callable_id)); + call_expr_parse_node, callable.return_type_id, refs_id, callable_id)); context.node_stack().Push(parse_node, call_node_id); return true; diff --git a/toolchain/semantics/semantics_handle_function.cpp b/toolchain/semantics/semantics_handle_function.cpp index 53899d03f667..43a5fcee61be 100644 --- a/toolchain/semantics/semantics_handle_function.cpp +++ b/toolchain/semantics/semantics_handle_function.cpp @@ -40,9 +40,8 @@ auto SemanticsHandleFunctionDefinitionStart(SemanticsContext& context, return_type_id = context.node_stack().PopForNodeId(ParseNodeKind::ReturnType); } - context.node_stack().PopForSoloParseNode(ParseNodeKind::ParameterList); - auto [param_ir_id, param_refs_id] = - context.finished_params_stack().pop_back_val(); + auto param_refs_id = + context.node_stack().PopForNodeBlockId(ParseNodeKind::ParameterList); auto name_node = context.node_stack().PopForSoloParseNode(ParseNodeKind::DeclaredName); auto fn_node = context.node_stack().PopForSoloParseNode( @@ -51,10 +50,8 @@ auto SemanticsHandleFunctionDefinitionStart(SemanticsContext& context, auto name_str = context.parse_tree().GetNodeText(name_node); auto name_id = context.semantics().AddString(name_str); - auto callable_id = - context.semantics().AddCallable({.param_ir_id = param_ir_id, - .param_refs_id = param_refs_id, - .return_type_id = return_type_id}); + auto callable_id = context.semantics().AddCallable( + {.param_refs_id = param_refs_id, .return_type_id = return_type_id}); auto decl_id = context.AddNode( SemanticsNode::FunctionDeclaration::Make(fn_node, name_id, callable_id)); context.AddNameToLookup(name_node, name_id, decl_id); diff --git a/toolchain/semantics/semantics_handle_struct.cpp b/toolchain/semantics/semantics_handle_struct.cpp index 35de3856f91a..0f7e584ce9ab 100644 --- a/toolchain/semantics/semantics_handle_struct.cpp +++ b/toolchain/semantics/semantics_handle_struct.cpp @@ -67,7 +67,7 @@ auto SemanticsHandleStructFieldValue(SemanticsContext& context, auto SemanticsHandleStructLiteral(SemanticsContext& context, ParseTree::Node parse_node) -> bool { - auto [ir_id, refs_id] = context.ParamOrArgEnd( + auto refs_id = context.ParamOrArgEnd( /*for_args=*/true, ParseNodeKind::StructLiteralOrStructTypeLiteralStart); context.PopScope(); @@ -81,14 +81,13 @@ auto SemanticsHandleStructLiteral(SemanticsContext& context, return true; } - // Construct a type for the literal. Each field is one node, so ir_id and - // refs_id match. + // Construct a type for the literal. auto refs = context.semantics().GetNodeBlock(refs_id); - auto type_id = context.AddNode(SemanticsNode::StructType::Make( - parse_node, type_block_id, type_block_id)); + auto type_id = context.AddNode( + SemanticsNode::StructType::Make(parse_node, type_block_id)); auto value_id = context.AddNode( - SemanticsNode::StructValue::Make(parse_node, type_id, ir_id, refs_id)); + SemanticsNode::StructValue::Make(parse_node, type_id, refs_id)); context.node_stack().Push(parse_node, value_id); return true; } @@ -107,7 +106,7 @@ auto SemanticsHandleStructLiteralOrStructTypeLiteralStart( auto SemanticsHandleStructTypeLiteral(SemanticsContext& context, ParseTree::Node parse_node) -> bool { - auto [ir_id, refs_id] = context.ParamOrArgEnd( + auto refs_id = context.ParamOrArgEnd( /*for_args=*/false, ParseNodeKind::StructLiteralOrStructTypeLiteralStart); context.PopScope(); @@ -119,8 +118,8 @@ auto SemanticsHandleStructTypeLiteral(SemanticsContext& context, CARBON_CHECK(refs_id != SemanticsNodeBlockId::Empty) << "{} is handled by StructLiteral."; - auto type_id = context.AddNode( - SemanticsNode::StructType::Make(parse_node, ir_id, refs_id)); + auto type_id = + context.AddNode(SemanticsNode::StructType::Make(parse_node, refs_id)); context.node_stack().Push(parse_node, type_id); return true; } diff --git a/toolchain/semantics/semantics_ir.cpp b/toolchain/semantics/semantics_ir.cpp index 7e3af85b35b3..98d0e48f7a06 100644 --- a/toolchain/semantics/semantics_ir.cpp +++ b/toolchain/semantics/semantics_ir.cpp @@ -105,7 +105,6 @@ auto SemanticsIR::Print(llvm::raw_ostream& out, bool include_builtins) const -> void { out << "cross_reference_irs_size: " << cross_reference_irs_.size() << "\n"; - PrintList(out, "calls", calls_); PrintList(out, "callables", callables_); PrintList(out, "integer_literals", integer_literals_); PrintList(out, "real_literals", real_literals_); @@ -165,7 +164,7 @@ auto SemanticsIR::StringifyNode(SemanticsNodeId node_id) -> std::string { auto node = GetNode(step.node_id); switch (node.kind()) { case SemanticsNodeKind::StructType: { - auto refs = GetNodeBlock(node.GetAsStructType().second); + auto refs = GetNodeBlock(node.GetAsStructType()); if (step.index == 0) { out << "{"; } else if (step.index < static_cast(refs.size())) { diff --git a/toolchain/semantics/semantics_ir.h b/toolchain/semantics/semantics_ir.h index ab213df5ddc8..2cb13e9c0c29 100644 --- a/toolchain/semantics/semantics_ir.h +++ b/toolchain/semantics/semantics_ir.h @@ -12,30 +12,16 @@ namespace Carbon { -// A call. -struct SemanticsCall { - auto Print(llvm::raw_ostream& out) const -> void { - out << "{arg_ir: " << arg_ir_id << ", arg_refs: " << arg_refs_id << "}"; - } - - // The full IR for arguments. - SemanticsNodeBlockId arg_ir_id; - // A block containing a single reference node per argument. - SemanticsNodeBlockId arg_refs_id; -}; - // A callable object. struct SemanticsCallable { auto Print(llvm::raw_ostream& out) const -> void { - out << "{param_ir: " << param_ir_id << ", param_refs: " << param_refs_id; + out << "{param_refs: " << param_refs_id; if (return_type_id.is_valid()) { out << ", return_type: " << return_type_id; } out << "}"; } - // The full IR for parameters. - SemanticsNodeBlockId param_ir_id; // A block containing a single reference node per parameter. SemanticsNodeBlockId param_refs_id; // The return type. This will be invalid if the return type wasn't specified. @@ -80,13 +66,6 @@ class SemanticsIR { } auto Print(llvm::raw_ostream& out, bool include_builtins) const -> void; - // Adds a call, returning an ID to reference it. - auto AddCall(SemanticsCall call) -> SemanticsCallId { - SemanticsCallId id(calls_.size()); - calls_.push_back(call); - return id; - } - // Adds a callable, returning an ID to reference it. auto AddCallable(SemanticsCallable callable) -> SemanticsCallableId { SemanticsCallableId id(callables_.size()); @@ -207,9 +186,6 @@ class SemanticsIR { bool has_errors_ = false; - // Storage for call objects. - llvm::SmallVector calls_; - // Storage for callable objects. llvm::SmallVector callables_; diff --git a/toolchain/semantics/semantics_ir_test.cpp b/toolchain/semantics/semantics_ir_test.cpp index ea9750527074..e7bb5f5beda9 100644 --- a/toolchain/semantics/semantics_ir_test.cpp +++ b/toolchain/semantics/semantics_ir_test.cpp @@ -50,7 +50,6 @@ TEST(SemanticsIRTest, YAML) { Yaml::Value::FromText(print_output), ElementsAre(Yaml::Mapping(ElementsAre( Pair("cross_reference_irs_size", "1"), - Pair("calls", Yaml::Sequence(IsEmpty())), Pair("callables", Yaml::Sequence(IsEmpty())), Pair("integer_literals", Yaml::Sequence(ElementsAre("0"))), Pair("real_literals", Yaml::Sequence(IsEmpty())), diff --git a/toolchain/semantics/semantics_node.h b/toolchain/semantics/semantics_node.h index 1a54a52eedcb..b098611b7229 100644 --- a/toolchain/semantics/semantics_node.h +++ b/toolchain/semantics/semantics_node.h @@ -50,15 +50,6 @@ constexpr SemanticsNodeId SemanticsNodeId::Invalid = SemanticsNodeId(SemanticsBuiltinKind::Name.AsInt()); #include "toolchain/semantics/semantics_builtin_kind.def" -// The ID of a call. -struct SemanticsCallId : public IndexBase { - using IndexBase::IndexBase; - auto Print(llvm::raw_ostream& out) const -> void { - out << "call"; - IndexBase::Print(out); - } -}; - // The ID of a callable, such as a function. struct SemanticsCallableId : public IndexBase { using IndexBase::IndexBase; @@ -256,8 +247,9 @@ class SemanticsNode { } }; - using Call = Factory; + using Call = + Factory; using CodeBlock = FactoryPreTyped; - using StructType = FactoryPreTyped< - SemanticsNodeKind::StructType, SemanticsBuiltinKind::TypeType.AsInt(), - SemanticsNodeBlockId /*ir_id*/, SemanticsNodeBlockId /*refs_id*/>; + using StructType = FactoryPreTyped; using StructTypeField = Factory; using StructValue = - Factory; + Factory; using StubReference = Factory; diff --git a/toolchain/semantics/semantics_node_stack.cpp b/toolchain/semantics/semantics_node_stack.cpp index c3f4bbc19e63..36f4b613cecd 100644 --- a/toolchain/semantics/semantics_node_stack.cpp +++ b/toolchain/semantics/semantics_node_stack.cpp @@ -130,6 +130,13 @@ auto SemanticsNodeStack::PopForParseNodeAndNodeId(ParseNodeKind pop_parse_kind) return {back.parse_node, back.node_id}; } +auto SemanticsNodeStack::PopForNodeBlockId(ParseNodeKind pop_parse_kind) + -> SemanticsNodeBlockId { + auto back = PopEntry(pop_parse_kind); + RequireValidId(back); + return back.node_block_id; +} + auto SemanticsNodeStack::PopForParseNodeAndNameId(ParseNodeKind pop_parse_kind) -> std::pair { auto back = PopEntry(pop_parse_kind); diff --git a/toolchain/semantics/semantics_node_stack.h b/toolchain/semantics/semantics_node_stack.h index 1b22eeaf131d..30bcffcb335c 100644 --- a/toolchain/semantics/semantics_node_stack.h +++ b/toolchain/semantics/semantics_node_stack.h @@ -40,11 +40,18 @@ class SemanticsNodeStack { DebugLog::None); } - // Pushes a parse tree node onto the stack. + // Pushes a parse tree node onto the stack with a semantics node. auto Push(ParseTree::Node parse_node, SemanticsNodeId node_id) -> void { PushEntry({.parse_node = parse_node, .node_id = node_id}, DebugLog::NodeId); } + // Pushes a parse tree node onto the stack with a semantics node block. + auto Push(ParseTree::Node parse_node, SemanticsNodeBlockId node_block_id) + -> void { + PushEntry({.parse_node = parse_node, .node_block_id = node_block_id}, + DebugLog::NodeId); + } + // Pushes a parse tree node onto the stack with its name. auto Push(ParseTree::Node parse_node, SemanticsStringId name_id) -> void { PushEntry({.parse_node = parse_node, .name_id = name_id}, DebugLog::NameId); @@ -82,6 +89,9 @@ class SemanticsNodeStack { // Pops the top of the stack and returns the node_id. auto PopForNodeId() -> SemanticsNodeId; + // Pops the top of the stack and returns the node_block_id. + auto PopForNodeBlockId(ParseNodeKind pop_parse_kind) -> SemanticsNodeBlockId; + // Pops the top of the stack and returns the parse_node and name_id. auto PopForParseNodeAndNameId(ParseNodeKind pop_parse_kind) -> std::pair; @@ -112,6 +122,7 @@ class SemanticsNodeStack { union { SemanticsNodeId node_id; SemanticsStringId name_id; + SemanticsNodeBlockId node_block_id; }; }; static_assert(sizeof(Entry) == 8, "Unexpected Entry size"); diff --git a/toolchain/semantics/testdata/basics/builtin_types.carbon b/toolchain/semantics/testdata/basics/builtin_types.carbon index a0de520f23a5..3b2d4f5e63a9 100644 --- a/toolchain/semantics/testdata/basics/builtin_types.carbon +++ b/toolchain/semantics/testdata/basics/builtin_types.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/basics/empty.carbon b/toolchain/semantics/testdata/basics/empty.carbon index b5c84733c633..40e3cf1f52b0 100644 --- a/toolchain/semantics/testdata/basics/empty.carbon +++ b/toolchain/semantics/testdata/basics/empty.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/basics/empty_decl.carbon b/toolchain/semantics/testdata/basics/empty_decl.carbon index aa8e2ea544ea..5fc73d814d61 100644 --- a/toolchain/semantics/testdata/basics/empty_decl.carbon +++ b/toolchain/semantics/testdata/basics/empty_decl.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/basics/fail_name_lookup.carbon b/toolchain/semantics/testdata/basics/fail_name_lookup.carbon index ba823e04aa61..afe740e8daee 100644 --- a/toolchain/semantics/testdata/basics/fail_name_lookup.carbon +++ b/toolchain/semantics/testdata/basics/fail_name_lookup.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/designators/fail_unsupported.carbon b/toolchain/semantics/testdata/designators/fail_unsupported.carbon index 808fb576b879..c63dc7700f8a 100644 --- a/toolchain/semantics/testdata/designators/fail_unsupported.carbon +++ b/toolchain/semantics/testdata/designators/fail_unsupported.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/function/call/empty_struct.carbon b/toolchain/semantics/testdata/function/call/empty_struct.carbon index e41bd9219f7d..7524e7ee53e2 100644 --- a/toolchain/semantics/testdata/function/call/empty_struct.carbon +++ b/toolchain/semantics/testdata/function/call/empty_struct.carbon @@ -4,12 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] @@ -27,8 +24,8 @@ // CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0}, // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1}, // CHECK:STDOUT: {kind: StubReference, arg0: nodeEmptyStruct, type: nodeEmptyStructType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6}, +// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ @@ -48,13 +45,11 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, +// CHECK:STDOUT: node+6, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+6, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] fn Echo(a: {}) { diff --git a/toolchain/semantics/testdata/function/call/fail_param_count.carbon b/toolchain/semantics/testdata/function/call/fail_param_count.carbon index cf443771b7e6..6a82734c6f33 100644 --- a/toolchain/semantics/testdata/function/call/fail_param_count.carbon +++ b/toolchain/semantics/testdata/function/call/fail_param_count.carbon @@ -4,13 +4,11 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, -// CHECK:STDOUT: {param_ir: block2, param_refs: block3}, -// CHECK:STDOUT: {param_ir: block4, param_refs: block5}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, +// CHECK:STDOUT: {param_refs: block3}, +// CHECK:STDOUT: {param_refs: block5}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, @@ -56,7 +54,7 @@ // CHECK:STDOUT: {kind: StubReference, arg0: node+21, type: nodeIntegerType}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+23, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+12, arg1: block0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+12, arg1: block6}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ @@ -91,35 +89,29 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+13, // CHECK:STDOUT: node+14, +// CHECK:STDOUT: node+15, +// CHECK:STDOUT: node+16, +// CHECK:STDOUT: node+17, +// CHECK:STDOUT: node+18, +// CHECK:STDOUT: node+19, +// CHECK:STDOUT: node+20, +// CHECK:STDOUT: node+21, +// CHECK:STDOUT: node+22, +// CHECK:STDOUT: node+23, +// CHECK:STDOUT: node+24, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+14, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+15, -// CHECK:STDOUT: node+16, -// CHECK:STDOUT: node+17, -// CHECK:STDOUT: node+18, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+16, // CHECK:STDOUT: node+18, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+19, -// CHECK:STDOUT: node+20, -// CHECK:STDOUT: node+21, -// CHECK:STDOUT: node+22, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+20, // CHECK:STDOUT: node+22, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+23, -// CHECK:STDOUT: node+24, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+24, // CHECK:STDOUT: ], // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/call/fail_param_type.carbon b/toolchain/semantics/testdata/function/call/fail_param_type.carbon index 76e597172c2d..6fc7e9912595 100644 --- a/toolchain/semantics/testdata/function/call/fail_param_type.carbon +++ b/toolchain/semantics/testdata/function/call/fail_param_type.carbon @@ -4,11 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] @@ -28,7 +26,7 @@ // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1}, // CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: nodeFloatingPointType}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ diff --git a/toolchain/semantics/testdata/function/call/fail_return_type_mismatch.carbon b/toolchain/semantics/testdata/function/call/fail_return_type_mismatch.carbon index a683596cc7c2..d1fe6f35c7dc 100644 --- a/toolchain/semantics/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/semantics/testdata/function/call/fail_return_type_mismatch.carbon @@ -4,12 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block0, arg_refs: block0}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeFloatingPointType}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0, return_type: nodeFloatingPointType}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] @@ -29,7 +26,7 @@ // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable1}, // CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType}, // CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+5, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeFloatingPointType}, +// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: callable0, type: nodeFloatingPointType}, // CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: nodeInvalidType, type: nodeInvalidType}, // CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block3}, // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/call/i32.carbon b/toolchain/semantics/testdata/function/call/i32.carbon index 3b34c8164f37..adf206e13b3a 100644 --- a/toolchain/semantics/testdata/function/call/i32.carbon +++ b/toolchain/semantics/testdata/function/call/i32.carbon @@ -4,12 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block6, arg_refs: block7}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2, return_type: nodeIntegerType}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2, return_type: nodeIntegerType}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, @@ -35,7 +32,7 @@ // CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+7, type: nodeIntegerType}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeIntegerType}, +// CHECK:STDOUT: {kind: Call, arg0: block6, arg1: callable0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+11, type: nodeIntegerType}, // CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block5}, // CHECK:STDOUT: ] @@ -62,12 +59,10 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+7, // CHECK:STDOUT: node+8, -// CHECK:STDOUT: node+11, -// CHECK:STDOUT: node+12, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+9, // CHECK:STDOUT: node+10, +// CHECK:STDOUT: node+11, +// CHECK:STDOUT: node+12, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+10, diff --git a/toolchain/semantics/testdata/function/call/more_param_ir.carbon b/toolchain/semantics/testdata/function/call/more_param_ir.carbon index f871a07b352a..078948fee729 100644 --- a/toolchain/semantics/testdata/function/call/more_param_ir.carbon +++ b/toolchain/semantics/testdata/function/call/more_param_ir.carbon @@ -4,12 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, @@ -50,8 +47,8 @@ // CHECK:STDOUT: {kind: StubReference, arg0: node+17, type: nodeIntegerType}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+19, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+8, arg1: block6}, +// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+8, arg1: block4}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ @@ -88,15 +85,13 @@ // CHECK:STDOUT: node+18, // CHECK:STDOUT: node+19, // CHECK:STDOUT: node+20, +// CHECK:STDOUT: node+21, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+14, // CHECK:STDOUT: node+18, // CHECK:STDOUT: node+20, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+21, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] fn Foo(a: i32, b: i32, c: i32) {} diff --git a/toolchain/semantics/testdata/function/call/params_one.carbon b/toolchain/semantics/testdata/function/call/params_one.carbon index 51f27f0b7e86..0c264436ff4b 100644 --- a/toolchain/semantics/testdata/function/call/params_one.carbon +++ b/toolchain/semantics/testdata/function/call/params_one.carbon @@ -4,12 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, @@ -29,8 +26,8 @@ // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6}, +// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ @@ -51,13 +48,11 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, // CHECK:STDOUT: node+6, +// CHECK:STDOUT: node+7, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+6, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+7, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] fn Foo(a: i32) {} diff --git a/toolchain/semantics/testdata/function/call/params_one_comma.carbon b/toolchain/semantics/testdata/function/call/params_one_comma.carbon index 28b63c387448..ebc70fe97248 100644 --- a/toolchain/semantics/testdata/function/call/params_one_comma.carbon +++ b/toolchain/semantics/testdata/function/call/params_one_comma.carbon @@ -4,13 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5}, -// CHECK:STDOUT: {arg_ir: block7, arg_refs: block8}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, @@ -31,11 +27,11 @@ // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0}, +// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6}, +// CHECK:STDOUT: {kind: Call, arg0: block6, arg1: callable0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ @@ -56,17 +52,13 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, // CHECK:STDOUT: node+6, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+6, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+7, +// CHECK:STDOUT: node+8, +// CHECK:STDOUT: node+9, // CHECK:STDOUT: node+10, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+8, -// CHECK:STDOUT: node+9, +// CHECK:STDOUT: node+6, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+9, diff --git a/toolchain/semantics/testdata/function/call/params_two.carbon b/toolchain/semantics/testdata/function/call/params_two.carbon index 5b437930a77a..6e84a68b60bb 100644 --- a/toolchain/semantics/testdata/function/call/params_two.carbon +++ b/toolchain/semantics/testdata/function/call/params_two.carbon @@ -4,12 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, @@ -35,8 +32,8 @@ // CHECK:STDOUT: {kind: StubReference, arg0: node+7, type: nodeIntegerType}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block6}, +// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block4}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ @@ -62,14 +59,12 @@ // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+9, // CHECK:STDOUT: node+10, +// CHECK:STDOUT: node+11, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+10, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+11, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] fn Foo(a: i32, b: i32) {} diff --git a/toolchain/semantics/testdata/function/call/params_two_comma.carbon b/toolchain/semantics/testdata/function/call/params_two_comma.carbon index 02935c7188a9..e69360ee65d4 100644 --- a/toolchain/semantics/testdata/function/call/params_two_comma.carbon +++ b/toolchain/semantics/testdata/function/call/params_two_comma.carbon @@ -4,13 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5}, -// CHECK:STDOUT: {arg_ir: block7, arg_refs: block8}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, @@ -38,13 +34,13 @@ // CHECK:STDOUT: {kind: StubReference, arg0: node+7, type: nodeIntegerType}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0}, +// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+12, type: nodeIntegerType}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+14, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block6}, +// CHECK:STDOUT: {kind: Call, arg0: block6, arg1: callable0}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block4}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ @@ -70,20 +66,16 @@ // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+9, // CHECK:STDOUT: node+10, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+8, -// CHECK:STDOUT: node+10, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+11, -// CHECK:STDOUT: node+16, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+12, // CHECK:STDOUT: node+13, // CHECK:STDOUT: node+14, // CHECK:STDOUT: node+15, +// CHECK:STDOUT: node+16, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+8, +// CHECK:STDOUT: node+10, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+13, diff --git a/toolchain/semantics/testdata/function/call/params_zero.carbon b/toolchain/semantics/testdata/function/call/params_zero.carbon index 072743c05a62..b17b44cbf340 100644 --- a/toolchain/semantics/testdata/function/call/params_zero.carbon +++ b/toolchain/semantics/testdata/function/call/params_zero.carbon @@ -4,12 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: {arg_ir: block0, arg_refs: block0}, -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] @@ -23,7 +20,7 @@ // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0}, // CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block0}, // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable1}, -// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0}, +// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: callable0}, // CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block2}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ diff --git a/toolchain/semantics/testdata/function/definition/fail_param_name_conflict.carbon b/toolchain/semantics/testdata/function/definition/fail_param_name_conflict.carbon index c94f681d6fb8..b070cd8061d3 100644 --- a/toolchain/semantics/testdata/function/definition/fail_param_name_conflict.carbon +++ b/toolchain/semantics/testdata/function/definition/fail_param_name_conflict.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, +// CHECK:STDOUT: {param_refs: block2}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/definition/order.carbon b/toolchain/semantics/testdata/function/definition/order.carbon index 33c07ed39c66..fdc7906beb61 100644 --- a/toolchain/semantics/testdata/function/definition/order.carbon +++ b/toolchain/semantics/testdata/function/definition/order.carbon @@ -4,12 +4,10 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/definition/params_one.carbon b/toolchain/semantics/testdata/function/definition/params_one.carbon index 227ac2c9feec..53d726ce72f3 100644 --- a/toolchain/semantics/testdata/function/definition/params_one.carbon +++ b/toolchain/semantics/testdata/function/definition/params_one.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, +// CHECK:STDOUT: {param_refs: block2}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/definition/params_one_comma.carbon b/toolchain/semantics/testdata/function/definition/params_one_comma.carbon index c9862f4c9362..33d424745092 100644 --- a/toolchain/semantics/testdata/function/definition/params_one_comma.carbon +++ b/toolchain/semantics/testdata/function/definition/params_one_comma.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, +// CHECK:STDOUT: {param_refs: block2}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/definition/params_two.carbon b/toolchain/semantics/testdata/function/definition/params_two.carbon index babb726b2a07..88d923a7d5a8 100644 --- a/toolchain/semantics/testdata/function/definition/params_two.carbon +++ b/toolchain/semantics/testdata/function/definition/params_two.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, +// CHECK:STDOUT: {param_refs: block2}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/definition/params_two_comma.carbon b/toolchain/semantics/testdata/function/definition/params_two_comma.carbon index 0cd2d9b6b547..0fb4eded972f 100644 --- a/toolchain/semantics/testdata/function/definition/params_two_comma.carbon +++ b/toolchain/semantics/testdata/function/definition/params_two_comma.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, +// CHECK:STDOUT: {param_refs: block2}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/definition/params_zero.carbon b/toolchain/semantics/testdata/function/definition/params_zero.carbon index f9d6279fc7e9..fed13ce3855f 100644 --- a/toolchain/semantics/testdata/function/definition/params_zero.carbon +++ b/toolchain/semantics/testdata/function/definition/params_zero.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/function/definition/same_param_name.carbon b/toolchain/semantics/testdata/function/definition/same_param_name.carbon index a83ddb17ece4..9571c110a3d3 100644 --- a/toolchain/semantics/testdata/function/definition/same_param_name.carbon +++ b/toolchain/semantics/testdata/function/definition/same_param_name.carbon @@ -4,11 +4,9 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block1, param_refs: block2}, -// CHECK:STDOUT: {param_ir: block4, param_refs: block5}, +// CHECK:STDOUT: {param_refs: block2}, +// CHECK:STDOUT: {param_refs: block5}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/operators/binary_op.carbon b/toolchain/semantics/testdata/operators/binary_op.carbon index c9831eedbb3b..b1c504155d6e 100644 --- a/toolchain/semantics/testdata/operators/binary_op.carbon +++ b/toolchain/semantics/testdata/operators/binary_op.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType}, +// CHECK:STDOUT: {param_refs: block0, return_type: nodeIntegerType}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 12, diff --git a/toolchain/semantics/testdata/operators/fail_type_mismatch.carbon b/toolchain/semantics/testdata/operators/fail_type_mismatch.carbon index 89df468d87ce..46843d8fe55d 100644 --- a/toolchain/semantics/testdata/operators/fail_type_mismatch.carbon +++ b/toolchain/semantics/testdata/operators/fail_type_mismatch.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType}, +// CHECK:STDOUT: {param_refs: block0, return_type: nodeIntegerType}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 12, diff --git a/toolchain/semantics/testdata/operators/fail_type_mismatch_once.carbon b/toolchain/semantics/testdata/operators/fail_type_mismatch_once.carbon index b707614a4f2b..18249bdb707e 100644 --- a/toolchain/semantics/testdata/operators/fail_type_mismatch_once.carbon +++ b/toolchain/semantics/testdata/operators/fail_type_mismatch_once.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType}, +// CHECK:STDOUT: {param_refs: block0, return_type: nodeIntegerType}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 12, diff --git a/toolchain/semantics/testdata/return/fail_type_mismatch.carbon b/toolchain/semantics/testdata/return/fail_type_mismatch.carbon index d45ab575085b..e60985969ed0 100644 --- a/toolchain/semantics/testdata/return/fail_type_mismatch.carbon +++ b/toolchain/semantics/testdata/return/fail_type_mismatch.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType}, +// CHECK:STDOUT: {param_refs: block0, return_type: nodeIntegerType}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/return/fail_value_disallowed.carbon b/toolchain/semantics/testdata/return/fail_value_disallowed.carbon index 0a38a55037d5..3fcf7a136792 100644 --- a/toolchain/semantics/testdata/return/fail_value_disallowed.carbon +++ b/toolchain/semantics/testdata/return/fail_value_disallowed.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 0, diff --git a/toolchain/semantics/testdata/return/fail_value_missing.carbon b/toolchain/semantics/testdata/return/fail_value_missing.carbon index 8b0e8cbb344b..ed696477913f 100644 --- a/toolchain/semantics/testdata/return/fail_value_missing.carbon +++ b/toolchain/semantics/testdata/return/fail_value_missing.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType}, +// CHECK:STDOUT: {param_refs: block0, return_type: nodeIntegerType}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/return/no_value.carbon b/toolchain/semantics/testdata/return/no_value.carbon index 042c37b6531c..c8392357d036 100644 --- a/toolchain/semantics/testdata/return/no_value.carbon +++ b/toolchain/semantics/testdata/return/no_value.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/return/struct.carbon b/toolchain/semantics/testdata/return/struct.carbon index c0f6bcf00c44..6050565be446 100644 --- a/toolchain/semantics/testdata/return/struct.carbon +++ b/toolchain/semantics/testdata/return/struct.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: node+1}, +// CHECK:STDOUT: {param_refs: block0, return_type: node+1}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 3, @@ -20,33 +18,34 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+3, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+6}, +// CHECK:STDOUT: {kind: StructType, arg0: block4, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block5, type: node+6}, // CHECK:STDOUT: {kind: ReturnExpression, arg0: node+7, type: node+6}, -// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block7}, +// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block3}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ // CHECK:STDOUT: [ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+1, // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+9, // CHECK:STDOUT: ], // CHECK:STDOUT: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ // CHECK:STDOUT: node+3, // CHECK:STDOUT: node+5, +// CHECK:STDOUT: node+6, +// CHECK:STDOUT: node+7, +// CHECK:STDOUT: node+8, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+4, @@ -54,11 +53,6 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+6, -// CHECK:STDOUT: node+7, -// CHECK:STDOUT: node+8, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] fn Main() -> {.a: i32} { diff --git a/toolchain/semantics/testdata/return/value.carbon b/toolchain/semantics/testdata/return/value.carbon index f07fce59bd93..fece93dc9fd0 100644 --- a/toolchain/semantics/testdata/return/value.carbon +++ b/toolchain/semantics/testdata/return/value.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType}, +// CHECK:STDOUT: {param_refs: block0, return_type: nodeIntegerType}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 0, diff --git a/toolchain/semantics/testdata/struct/empty.carbon b/toolchain/semantics/testdata/struct/empty.carbon index 0ba80fee761a..4858554d02c4 100644 --- a/toolchain/semantics/testdata/struct/empty.carbon +++ b/toolchain/semantics/testdata/struct/empty.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/struct/fail_assign_empty.carbon b/toolchain/semantics/testdata/struct/fail_assign_empty.carbon index 1e107fb99b68..20afa70accba 100644 --- a/toolchain/semantics/testdata/struct/fail_assign_empty.carbon +++ b/toolchain/semantics/testdata/struct/fail_assign_empty.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -18,7 +16,7 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+1}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: node+1}, // CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeInvalidType, type: nodeInvalidType}, @@ -28,16 +26,14 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+1, // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, // CHECK:STDOUT: node+4, // CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], // CHECK:STDOUT: ] // CHECK:STDERR: fail_assign_empty.carbon:[[@LINE+1]]:22: Cannot implicitly convert from `{} as Type` to `{.a: i32}`. diff --git a/toolchain/semantics/testdata/struct/fail_assign_to_empty.carbon b/toolchain/semantics/testdata/struct/fail_assign_to_empty.carbon index b7b357046193..a7596653ab2c 100644 --- a/toolchain/semantics/testdata/struct/fail_assign_to_empty.carbon +++ b/toolchain/semantics/testdata/struct/fail_assign_to_empty.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -23,8 +21,8 @@ // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+2, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block3, arg1: block3, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block2, arg1: block4, type: node+5}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block3, type: node+5}, // CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: nodeInvalidType, type: nodeInvalidType}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ @@ -33,15 +31,13 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, // CHECK:STDOUT: node+1, +// CHECK:STDOUT: node+2, +// CHECK:STDOUT: node+4, // CHECK:STDOUT: node+5, // CHECK:STDOUT: node+6, // CHECK:STDOUT: node+7, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+2, -// CHECK:STDOUT: node+4, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+3, // CHECK:STDOUT: ], // CHECK:STDOUT: [ diff --git a/toolchain/semantics/testdata/struct/fail_field_name_mismatch.carbon b/toolchain/semantics/testdata/struct/fail_field_name_mismatch.carbon index 9eaa7610c592..4bf7c2b6a80e 100644 --- a/toolchain/semantics/testdata/struct/fail_field_name_mismatch.carbon +++ b/toolchain/semantics/testdata/struct/fail_field_name_mismatch.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -20,14 +18,14 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+1}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: node+1}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+7}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+7}, // CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeInvalidType, type: nodeInvalidType}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ @@ -35,21 +33,17 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+1, // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, +// CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+6, // CHECK:STDOUT: node+7, // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+9, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+4, -// CHECK:STDOUT: node+6, +// CHECK:STDOUT: node+0, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, diff --git a/toolchain/semantics/testdata/struct/fail_field_type_mismatch.carbon b/toolchain/semantics/testdata/struct/fail_field_type_mismatch.carbon index ab6a8698ec09..0332187158f5 100644 --- a/toolchain/semantics/testdata/struct/fail_field_type_mismatch.carbon +++ b/toolchain/semantics/testdata/struct/fail_field_type_mismatch.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -20,14 +18,14 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+1}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: node+1}, // CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: nodeFloatingPointType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: nodeFloatingPointType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+7}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+7}, // CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeInvalidType, type: nodeInvalidType}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ @@ -35,21 +33,17 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+1, // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, +// CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+6, // CHECK:STDOUT: node+7, // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+9, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+4, -// CHECK:STDOUT: node+6, +// CHECK:STDOUT: node+0, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, diff --git a/toolchain/semantics/testdata/struct/fail_member_access_type.carbon b/toolchain/semantics/testdata/struct/fail_member_access_type.carbon index 74f551b2f8db..c6f76a8c37de 100644 --- a/toolchain/semantics/testdata/struct/fail_member_access_type.carbon +++ b/toolchain/semantics/testdata/struct/fail_member_access_type.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -21,14 +19,14 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeFloatingPointType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+1}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: node+1}, // CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeFloatingPointType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: nodeFloatingPointType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+7}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+7}, // CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+8, type: node+7}, // CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType}, // CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+10, type: nodeIntegerType}, @@ -39,14 +37,11 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+1, // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, +// CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+6, // CHECK:STDOUT: node+7, // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+9, @@ -55,8 +50,7 @@ // CHECK:STDOUT: node+12, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+4, -// CHECK:STDOUT: node+6, +// CHECK:STDOUT: node+0, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, diff --git a/toolchain/semantics/testdata/struct/fail_non_member_access.carbon b/toolchain/semantics/testdata/struct/fail_non_member_access.carbon index a7dde3b2a73e..397345431a28 100644 --- a/toolchain/semantics/testdata/struct/fail_non_member_access.carbon +++ b/toolchain/semantics/testdata/struct/fail_non_member_access.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -21,14 +19,14 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+1}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: node+1}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+7}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+7}, // CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+8, type: node+7}, // CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType}, // CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+10, type: nodeIntegerType}, @@ -39,14 +37,11 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+1, // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, +// CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+6, // CHECK:STDOUT: node+7, // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+9, @@ -55,8 +50,7 @@ // CHECK:STDOUT: node+12, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+4, -// CHECK:STDOUT: node+6, +// CHECK:STDOUT: node+0, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, diff --git a/toolchain/semantics/testdata/struct/fail_too_few_values.carbon b/toolchain/semantics/testdata/struct/fail_too_few_values.carbon index 495869680a65..2daee645343c 100644 --- a/toolchain/semantics/testdata/struct/fail_too_few_values.carbon +++ b/toolchain/semantics/testdata/struct/fail_too_few_values.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -21,14 +19,14 @@ // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+2}, // CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+3, type: node+2}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+8}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+8}, // CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: nodeInvalidType, type: nodeInvalidType}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ @@ -37,22 +35,18 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, // CHECK:STDOUT: node+1, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: node+1, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, // CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+5, +// CHECK:STDOUT: node+7, // CHECK:STDOUT: node+8, // CHECK:STDOUT: node+9, // CHECK:STDOUT: node+10, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+5, -// CHECK:STDOUT: node+7, +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: node+1, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+6, diff --git a/toolchain/semantics/testdata/struct/fail_type_assign.carbon b/toolchain/semantics/testdata/struct/fail_type_assign.carbon index 8b8904d66e75..8c0f6d00c4d5 100644 --- a/toolchain/semantics/testdata/struct/fail_type_assign.carbon +++ b/toolchain/semantics/testdata/struct/fail_type_assign.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -18,11 +16,11 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+1}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: node+1}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block4, arg1: block5, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, // CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeInvalidType, type: nodeInvalidType}, // CHECK:STDOUT: ] // CHECK:STDOUT: node_blocks: [ @@ -30,19 +28,15 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // 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+4, +// CHECK:STDOUT: node+0, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+4, diff --git a/toolchain/semantics/testdata/struct/fail_value_as_type.carbon b/toolchain/semantics/testdata/struct/fail_value_as_type.carbon index e54e4804cc5e..55d35735a39b 100644 --- a/toolchain/semantics/testdata/struct/fail_value_as_type.carbon +++ b/toolchain/semantics/testdata/struct/fail_value_as_type.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -21,8 +19,8 @@ // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block2, arg1: block2, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block1, arg1: block3, type: node+3}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block3, type: node+3}, // CHECK:STDOUT: {kind: VarStorage, type: nodeInvalidType}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+5, type: nodeInvalidType}, // CHECK:STDOUT: ] @@ -32,6 +30,10 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, // 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+1, @@ -39,12 +41,6 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+2, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+3, -// CHECK:STDOUT: node+4, -// CHECK:STDOUT: node+5, -// CHECK:STDOUT: node+6, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] // CHECK:STDERR: fail_value_as_type.carbon:[[@LINE+1]]:15: Cannot implicitly convert from `{.a: i32}` to `Type`. diff --git a/toolchain/semantics/testdata/struct/member_access.carbon b/toolchain/semantics/testdata/struct/member_access.carbon index fed78e252262..171f9e566d95 100644 --- a/toolchain/semantics/testdata/struct/member_access.carbon +++ b/toolchain/semantics/testdata/struct/member_access.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -24,7 +22,7 @@ // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeFloatingPointType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+2}, // CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+3, type: node+2}, // CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType}, @@ -33,8 +31,8 @@ // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+11}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+11}, // CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: node+12, type: node+11}, // CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType}, // CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+14, type: nodeIntegerType}, @@ -50,15 +48,13 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, // CHECK:STDOUT: node+1, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: node+1, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, // CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+5, +// CHECK:STDOUT: node+7, +// CHECK:STDOUT: node+8, +// CHECK:STDOUT: node+10, // CHECK:STDOUT: node+11, // CHECK:STDOUT: node+12, // CHECK:STDOUT: node+13, @@ -71,10 +67,8 @@ // CHECK:STDOUT: node+20, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+5, -// CHECK:STDOUT: node+7, -// CHECK:STDOUT: node+8, -// CHECK:STDOUT: node+10, +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: node+1, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+6, diff --git a/toolchain/semantics/testdata/struct/one_entry.carbon b/toolchain/semantics/testdata/struct/one_entry.carbon index 3156d99d6471..b0f487bc0c67 100644 --- a/toolchain/semantics/testdata/struct/one_entry.carbon +++ b/toolchain/semantics/testdata/struct/one_entry.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -20,17 +18,17 @@ // CHECK:STDOUT: ] // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+1}, // CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: node+1}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+7}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+7}, // CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+8, type: node+7}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block7, arg1: block8, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block5, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+11}, // CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+12, type: node+11}, // CHECK:STDOUT: {kind: Assign, arg0: node+12, arg1: node+2, type: node+1}, @@ -40,25 +38,22 @@ // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+1, // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, +// CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+6, // CHECK:STDOUT: node+7, // 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+4, -// CHECK:STDOUT: node+6, +// CHECK:STDOUT: node+0, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+5, @@ -69,9 +64,6 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+10, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+10, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] var x: {.a: i32} = {.a = 4}; diff --git a/toolchain/semantics/testdata/struct/two_entries.carbon b/toolchain/semantics/testdata/struct/two_entries.carbon index 06ae45bb219a..39292cf6143f 100644 --- a/toolchain/semantics/testdata/struct/two_entries.carbon +++ b/toolchain/semantics/testdata/struct/two_entries.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ @@ -23,7 +21,7 @@ // CHECK:STDOUT: nodes: [ // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block1, arg1: block2, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block2, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+2}, // CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+3, type: node+2}, // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType}, @@ -32,12 +30,12 @@ // CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block5, arg1: block5, type: nodeTypeType}, -// CHECK:STDOUT: {kind: StructValue, arg0: block4, arg1: block6, type: node+11}, +// CHECK:STDOUT: {kind: StructType, arg0: block3, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: node+11}, // CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: node+12, type: node+11}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str0, type: nodeIntegerType}, // CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: nodeIntegerType}, -// CHECK:STDOUT: {kind: StructType, arg0: block7, arg1: block8, type: nodeTypeType}, +// CHECK:STDOUT: {kind: StructType, arg0: block5, type: nodeTypeType}, // CHECK:STDOUT: {kind: VarStorage, type: node+16}, // CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+17, type: node+16}, // CHECK:STDOUT: {kind: Assign, arg0: node+17, arg1: node+3, type: node+2}, @@ -48,28 +46,26 @@ // CHECK:STDOUT: [ // CHECK:STDOUT: node+0, // CHECK:STDOUT: node+1, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: node+1, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ // CHECK:STDOUT: node+2, // CHECK:STDOUT: node+3, // CHECK:STDOUT: node+4, +// CHECK:STDOUT: node+5, +// CHECK:STDOUT: node+7, +// CHECK:STDOUT: node+8, +// CHECK:STDOUT: node+10, // CHECK:STDOUT: node+11, // CHECK:STDOUT: node+12, // CHECK:STDOUT: node+13, +// CHECK:STDOUT: node+14, +// CHECK:STDOUT: node+15, // CHECK:STDOUT: node+16, // CHECK:STDOUT: node+17, // CHECK:STDOUT: node+18, // CHECK:STDOUT: node+19, // CHECK:STDOUT: ], // CHECK:STDOUT: [ -// CHECK:STDOUT: node+5, -// CHECK:STDOUT: node+7, -// CHECK:STDOUT: node+8, -// CHECK:STDOUT: node+10, +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: node+1, // CHECK:STDOUT: ], // CHECK:STDOUT: [ // CHECK:STDOUT: node+6, @@ -83,10 +79,6 @@ // CHECK:STDOUT: node+14, // CHECK:STDOUT: node+15, // CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+14, -// CHECK:STDOUT: node+15, -// CHECK:STDOUT: ], // CHECK:STDOUT: ] var x: {.a: i32, .b: i32} = {.a = 1, .b = 2}; diff --git a/toolchain/semantics/testdata/var/decl.carbon b/toolchain/semantics/testdata/var/decl.carbon index d6fb83534b1e..aaf15e883ee7 100644 --- a/toolchain/semantics/testdata/var/decl.carbon +++ b/toolchain/semantics/testdata/var/decl.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/var/decl_with_init.carbon b/toolchain/semantics/testdata/var/decl_with_init.carbon index e00d1cad804c..a71ce3c54030 100644 --- a/toolchain/semantics/testdata/var/decl_with_init.carbon +++ b/toolchain/semantics/testdata/var/decl_with_init.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 0, diff --git a/toolchain/semantics/testdata/var/fail_duplicate_decl.carbon b/toolchain/semantics/testdata/var/fail_duplicate_decl.carbon index ea25017e30bd..b3d226cacb24 100644 --- a/toolchain/semantics/testdata/var/fail_duplicate_decl.carbon +++ b/toolchain/semantics/testdata/var/fail_duplicate_decl.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 0, diff --git a/toolchain/semantics/testdata/var/fail_init_type_mismatch.carbon b/toolchain/semantics/testdata/var/fail_init_type_mismatch.carbon index f402aa6bd510..a294e178d391 100644 --- a/toolchain/semantics/testdata/var/fail_init_type_mismatch.carbon +++ b/toolchain/semantics/testdata/var/fail_init_type_mismatch.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/var/fail_init_with_self.carbon b/toolchain/semantics/testdata/var/fail_init_with_self.carbon index 23fe0c349e1b..f273594efb01 100644 --- a/toolchain/semantics/testdata/var/fail_init_with_self.carbon +++ b/toolchain/semantics/testdata/var/fail_init_with_self.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/var/fail_lookup_outside_scope.carbon b/toolchain/semantics/testdata/var/fail_lookup_outside_scope.carbon index 184af77691c7..f21b0fa5ce08 100644 --- a/toolchain/semantics/testdata/var/fail_lookup_outside_scope.carbon +++ b/toolchain/semantics/testdata/var/fail_lookup_outside_scope.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: ] diff --git a/toolchain/semantics/testdata/var/fail_storage_is_literal.carbon b/toolchain/semantics/testdata/var/fail_storage_is_literal.carbon index 9e88b8c69b0b..d605cefa4daf 100644 --- a/toolchain/semantics/testdata/var/fail_storage_is_literal.carbon +++ b/toolchain/semantics/testdata/var/fail_storage_is_literal.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 1, diff --git a/toolchain/semantics/testdata/var/global_decl.carbon b/toolchain/semantics/testdata/var/global_decl.carbon index 7e9a115d4f1b..820dd0d8ac83 100644 --- a/toolchain/semantics/testdata/var/global_decl.carbon +++ b/toolchain/semantics/testdata/var/global_decl.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/var/global_decl_with_init.carbon b/toolchain/semantics/testdata/var/global_decl_with_init.carbon index 2e823efb0727..6390b172b48e 100644 --- a/toolchain/semantics/testdata/var/global_decl_with_init.carbon +++ b/toolchain/semantics/testdata/var/global_decl_with_init.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/var/global_lookup.carbon b/toolchain/semantics/testdata/var/global_lookup.carbon index baffba6baf10..b0cf73b78e8b 100644 --- a/toolchain/semantics/testdata/var/global_lookup.carbon +++ b/toolchain/semantics/testdata/var/global_lookup.carbon @@ -4,8 +4,6 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ diff --git a/toolchain/semantics/testdata/var/global_lookup_in_scope.carbon b/toolchain/semantics/testdata/var/global_lookup_in_scope.carbon index f7a1625e50a1..da438af568ab 100644 --- a/toolchain/semantics/testdata/var/global_lookup_in_scope.carbon +++ b/toolchain/semantics/testdata/var/global_lookup_in_scope.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 0, diff --git a/toolchain/semantics/testdata/var/lookup.carbon b/toolchain/semantics/testdata/var/lookup.carbon index d76b6413f9e4..82a49c90561e 100644 --- a/toolchain/semantics/testdata/var/lookup.carbon +++ b/toolchain/semantics/testdata/var/lookup.carbon @@ -4,10 +4,8 @@ // // AUTOUPDATE // CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: calls: [ -// CHECK:STDOUT: ] // CHECK:STDOUT: callables: [ -// CHECK:STDOUT: {param_ir: block0, param_refs: block0}, +// CHECK:STDOUT: {param_refs: block0}, // CHECK:STDOUT: ] // CHECK:STDOUT: integer_literals: [ // CHECK:STDOUT: 0,