mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-11-15 21:08:10 +00:00
The speculative insertion of StubReferences after elements in an argument list turned out to not be necessary, because we decided we want to insert per-argument initialization steps after all arguments are evaluated, rather than interleaving them. The StubReferences we insert are causing some minor code complexity, so remove them. We still create StubReferences when performing patch-ups of already-emitted code, but we no longer ever need to look through them when determining whether an initializer was a literal or when evaluating a type expression.
43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
// Exceptions. See /LICENSE for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
#include "toolchain/check/context.h"
|
|
|
|
namespace Carbon::Check {
|
|
|
|
auto HandleDeducedParameterList(Context& context, Parse::Node parse_node)
|
|
-> bool {
|
|
return context.TODO(parse_node, "HandleDeducedParameterList");
|
|
}
|
|
|
|
auto HandleDeducedParameterListStart(Context& context, Parse::Node parse_node)
|
|
-> bool {
|
|
return context.TODO(parse_node, "HandleDeducedParameterListStart");
|
|
}
|
|
|
|
auto HandleParameterList(Context& context, Parse::Node parse_node) -> bool {
|
|
auto refs_id = context.ParamOrArgEnd(Parse::NodeKind::ParameterListStart);
|
|
context.PopScope();
|
|
context.node_stack()
|
|
.PopAndDiscardSoloParseNode<Parse::NodeKind::ParameterListStart>();
|
|
context.node_stack().Push(parse_node, refs_id);
|
|
return true;
|
|
}
|
|
|
|
auto HandleParameterListComma(Context& context, Parse::Node /*parse_node*/)
|
|
-> bool {
|
|
context.ParamOrArgComma();
|
|
return true;
|
|
}
|
|
|
|
auto HandleParameterListStart(Context& context, Parse::Node parse_node)
|
|
-> bool {
|
|
context.PushScope();
|
|
context.node_stack().Push(parse_node);
|
|
context.ParamOrArgStart();
|
|
return true;
|
|
}
|
|
|
|
} // namespace Carbon::Check
|