Skip to content

Commit ed95875

Browse files
powerboat9CohenArthur
authored andcommitted
nr1.0: Remove support in borrow checker
gcc/rust/ChangeLog: * checks/errors/borrowck/rust-bir-builder-internal.h: Remove inclusion of "rust-name-resolver.h". (BuilderContext::resolver): Change type to nr2.0 resolver. (BuilderContext::BuilderContext): Change initialization of resolver reference. (AbstractBuilder::resolve_label): Assume name resolution 2.0 is enabled. (AbstractBuilder::resolve_variable): Likewise. (AbstractBuilder::resolve_variable_or_fn): Likewise. Signed-off-by: Owen Avery <[email protected]>
1 parent 051101e commit ed95875

File tree

1 file changed

+13
-52
lines changed

1 file changed

+13
-52
lines changed

gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h

Lines changed: 13 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#include "rust-hir-item.h"
2525
#include "rust-hir-type-check.h"
2626
#include "rust-hir-visitor.h"
27-
#include "rust-name-resolver.h"
2827
#include "rust-bir.h"
2928
#include "rust-bir-free-region.h"
3029
#include "rust-immutable-name-resolution-context.h"
@@ -75,7 +74,7 @@ struct BuilderContext
7574

7675
// External context.
7776
Resolver::TypeCheckContext &tyctx;
78-
Resolver::Resolver &resolver;
77+
const Resolver2_0::NameResolutionContext &resolver;
7978

8079
// BIR output
8180
BasicBlocks basic_blocks;
@@ -104,7 +103,7 @@ struct BuilderContext
104103
public:
105104
BuilderContext ()
106105
: tyctx (*Resolver::TypeCheckContext::get ()),
107-
resolver (*Resolver::Resolver::get ())
106+
resolver (Resolver2_0::ImmutableNameResolutionContext::get ().resolver ())
108107
{
109108
basic_blocks.emplace_back (); // StartBB
110109
}
@@ -403,69 +402,31 @@ class AbstractBuilder
403402

404403
template <typename T> NodeId resolve_label (T &expr)
405404
{
406-
NodeId resolved_label;
407-
if (flag_name_resolution_2_0)
408-
{
409-
auto &nr_ctx
410-
= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
411-
auto res = nr_ctx.lookup (expr.get_mappings ().get_nodeid ());
412-
rust_assert (res.has_value ());
413-
resolved_label = res.value ();
414-
}
415-
else
416-
{
417-
bool ok = ctx.resolver.lookup_resolved_label (
418-
expr.get_mappings ().get_nodeid (), &resolved_label);
419-
rust_assert (ok);
420-
}
421-
return resolved_label;
405+
auto res = ctx.resolver.lookup (expr.get_mappings ().get_nodeid ());
406+
rust_assert (res.has_value ());
407+
return res.value ();
422408
}
423409

424410
template <typename T> PlaceId resolve_variable (T &variable)
425411
{
426-
NodeId variable_id;
427-
if (flag_name_resolution_2_0)
428-
{
429-
auto &nr_ctx
430-
= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
431-
auto res = nr_ctx.lookup (variable.get_mappings ().get_nodeid ());
432-
rust_assert (res.has_value ());
433-
variable_id = res.value ();
434-
}
435-
else
436-
{
437-
bool ok = ctx.resolver.lookup_resolved_name (
438-
variable.get_mappings ().get_nodeid (), &variable_id);
439-
rust_assert (ok);
440-
}
441-
return ctx.place_db.lookup_variable (variable_id);
412+
auto res = ctx.resolver.lookup (variable.get_mappings ().get_nodeid ());
413+
rust_assert (res.has_value ());
414+
return ctx.place_db.lookup_variable (res.value ());
442415
}
443416

444417
template <typename T>
445418
PlaceId resolve_variable_or_fn (T &variable, TyTy::BaseType *ty)
446419
{
447420
ty = (ty) ? ty : lookup_type (variable);
421+
448422
// Unlike variables,
449423
// functions do not have to be declared in PlaceDB before use.
450-
NodeId variable_id;
451-
if (flag_name_resolution_2_0)
452-
{
453-
auto &nr_ctx
454-
= Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
455-
auto res = nr_ctx.lookup (variable.get_mappings ().get_nodeid ());
456-
rust_assert (res.has_value ());
457-
variable_id = res.value ();
458-
}
459-
else
460-
{
461-
bool ok = ctx.resolver.lookup_resolved_name (
462-
variable.get_mappings ().get_nodeid (), &variable_id);
463-
rust_assert (ok);
464-
}
465424
if (ty->is<TyTy::FnType> ())
466425
return ctx.place_db.get_constant (ty);
467-
else
468-
return ctx.place_db.lookup_or_add_variable (variable_id, ty);
426+
427+
auto res = ctx.resolver.lookup (variable.get_mappings ().get_nodeid ());
428+
rust_assert (res.has_value ());
429+
return ctx.place_db.lookup_or_add_variable (res.value (), ty);
469430
}
470431

471432
protected: // Implicit conversions.

0 commit comments

Comments
 (0)