@@ -75,7 +75,6 @@ struct BuilderContext
7575
7676 // External context.
7777 Resolver::TypeCheckContext &tyctx;
78- Resolver::Resolver &resolver;
7978
8079 // BIR output
8180 BasicBlocks basic_blocks;
@@ -102,9 +101,7 @@ struct BuilderContext
102101 FreeRegions fn_free_regions{{}};
103102
104103public:
105- BuilderContext ()
106- : tyctx (*Resolver::TypeCheckContext::get ()),
107- resolver (*Resolver::Resolver::get ())
104+ BuilderContext () : tyctx (*Resolver::TypeCheckContext::get ())
108105 {
109106 basic_blocks.emplace_back (); // StartBB
110107 }
@@ -403,69 +400,43 @@ class AbstractBuilder
403400
404401 template <typename T> NodeId resolve_label (T &expr)
405402 {
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;
403+ auto &nr_ctx
404+ = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
405+
406+ auto res = nr_ctx.lookup (expr.get_mappings ().get_nodeid ());
407+ rust_assert (res.has_value ());
408+
409+ return *res;
422410 }
423411
424412 template <typename T> PlaceId resolve_variable (T &variable)
425413 {
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);
414+ auto &nr_ctx
415+ = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
416+
417+ auto res = nr_ctx.lookup (variable.get_mappings ().get_nodeid ());
418+ rust_assert (res.has_value ());
419+
420+ return ctx.place_db .lookup_variable (*res);
442421 }
443422
444423 template <typename T>
445424 PlaceId resolve_variable_or_fn (T &variable, TyTy::BaseType *ty)
446425 {
447426 ty = (ty) ? ty : lookup_type (variable);
427+
448428 // Unlike variables,
449429 // 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- }
465430 if (ty->is <TyTy::FnType> ())
466431 return ctx.place_db .get_constant (ty);
467- else
468- return ctx.place_db .lookup_or_add_variable (variable_id, ty);
432+
433+ auto &nr_ctx
434+ = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
435+
436+ auto res = nr_ctx.lookup (variable.get_mappings ().get_nodeid ());
437+ rust_assert (res.has_value ());
438+
439+ return ctx.place_db .lookup_or_add_variable (*res, ty);
469440 }
470441
471442protected: // Implicit conversions.
0 commit comments