mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:10:13 +01:00
Don't return SemanticsFunction by value. (#2968)
It contains a vector, so it's not cheap to copy. Return by const reference instead. Thanks to @fasiddique for spotting this!
This commit is contained in:
@@ -24,7 +24,7 @@ auto SemanticsHandleCallExpression(SemanticsContext& context,
|
||||
}
|
||||
|
||||
auto function_id = name_node.GetAsFunctionDeclaration();
|
||||
auto callable = context.semantics_ir().GetFunction(function_id);
|
||||
const auto& callable = context.semantics_ir().GetFunction(function_id);
|
||||
|
||||
CARBON_DIAGNOSTIC(NoMatchingCall, Error, "No matching callable was found.");
|
||||
auto diagnostic =
|
||||
|
||||
@@ -22,7 +22,7 @@ auto SemanticsHandleReturnStatement(SemanticsContext& context,
|
||||
CARBON_CHECK(!context.return_scope_stack().empty());
|
||||
const auto& fn_node =
|
||||
context.semantics_ir().GetNode(context.return_scope_stack().back());
|
||||
const auto callable =
|
||||
const auto& callable =
|
||||
context.semantics_ir().GetFunction(fn_node.GetAsFunctionDeclaration());
|
||||
|
||||
if (context.parse_tree().node_kind(context.node_stack().PeekParseNode()) ==
|
||||
|
||||
@@ -90,7 +90,8 @@ class SemanticsIR {
|
||||
}
|
||||
|
||||
// Returns the requested callable.
|
||||
auto GetFunction(SemanticsFunctionId function_id) const -> SemanticsFunction {
|
||||
auto GetFunction(SemanticsFunctionId function_id) const
|
||||
-> const SemanticsFunction& {
|
||||
return functions_[function_id.index];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user