Skip to content

Commit ad0a47d

Browse files
authored
Change LookupNameInCore to use a LocId (#4858)
SemIRLoc is doing extra wrapping which shouldn't be used here.
1 parent f4e19f4 commit ad0a47d

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

toolchain/check/context.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -691,8 +691,8 @@ auto Context::LookupQualifiedName(SemIR::LocId loc_id, SemIR::NameId name_id,
691691
//
692692
// TODO: Consider tracking the Core package in SemIR so we don't need to use
693693
// name lookup to find it.
694-
static auto GetCorePackage(Context& context, SemIRLoc loc, llvm::StringRef name)
695-
-> SemIR::NameScopeId {
694+
static auto GetCorePackage(Context& context, SemIR::LocId loc_id,
695+
llvm::StringRef name) -> SemIR::NameScopeId {
696696
auto core_ident_id = context.identifiers().Add("Core");
697697
auto packaging = context.parse_tree().packaging_decl();
698698
if (packaging && packaging->names.package_id == core_ident_id) {
@@ -702,7 +702,7 @@ static auto GetCorePackage(Context& context, SemIRLoc loc, llvm::StringRef name)
702702

703703
// Look up `package.Core`.
704704
auto core_scope_result = context.LookupNameInExactScope(
705-
loc, core_name_id, SemIR::NameScopeId::Package,
705+
loc_id, core_name_id, SemIR::NameScopeId::Package,
706706
context.name_scopes().Get(SemIR::NameScopeId::Package));
707707
if (core_scope_result.is_found()) {
708708
// We expect it to be a namespace.
@@ -717,26 +717,26 @@ static auto GetCorePackage(Context& context, SemIRLoc loc, llvm::StringRef name)
717717
CoreNotFound, Error,
718718
"`Core.{0}` implicitly referenced here, but package `Core` not found",
719719
std::string);
720-
context.emitter().Emit(loc, CoreNotFound, name.str());
720+
context.emitter().Emit(loc_id, CoreNotFound, name.str());
721721
return SemIR::NameScopeId::None;
722722
}
723723

724-
auto Context::LookupNameInCore(SemIRLoc loc, llvm::StringRef name)
724+
auto Context::LookupNameInCore(SemIR::LocId loc_id, llvm::StringRef name)
725725
-> SemIR::InstId {
726-
auto core_package_id = GetCorePackage(*this, loc, name);
726+
auto core_package_id = GetCorePackage(*this, loc_id, name);
727727
if (!core_package_id.has_value()) {
728728
return SemIR::ErrorInst::SingletonInstId;
729729
}
730730

731731
auto name_id = SemIR::NameId::ForIdentifier(identifiers().Add(name));
732732
auto scope_result = LookupNameInExactScope(
733-
loc, name_id, core_package_id, name_scopes().Get(core_package_id));
733+
loc_id, name_id, core_package_id, name_scopes().Get(core_package_id));
734734
if (!scope_result.is_found()) {
735735
CARBON_DIAGNOSTIC(
736736
CoreNameNotFound, Error,
737737
"name `Core.{0}` implicitly referenced here, but not found",
738738
SemIR::NameId);
739-
emitter_->Emit(loc, CoreNameNotFound, name_id);
739+
emitter_->Emit(loc_id, CoreNameNotFound, name_id);
740740
return SemIR::ErrorInst::SingletonInstId;
741741
}
742742

toolchain/check/context.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ class Context {
259259

260260
// Returns the `InstId` corresponding to a name in the core package, or
261261
// BuiltinErrorInst if not found.
262-
auto LookupNameInCore(SemIRLoc loc, llvm::StringRef name) -> SemIR::InstId;
262+
auto LookupNameInCore(SemIR::LocId loc_id, llvm::StringRef name)
263+
-> SemIR::InstId;
263264

264265
// Prints a diagnostic for a duplicate name.
265266
auto DiagnoseDuplicateName(SemIRLoc dup_def, SemIRLoc prev_def) -> void;

0 commit comments

Comments
 (0)