@@ -75,7 +75,6 @@ struct BuilderContext
75
75
76
76
// External context.
77
77
Resolver::TypeCheckContext &tyctx;
78
- Resolver::Resolver &resolver;
79
78
80
79
// BIR output
81
80
BasicBlocks basic_blocks;
@@ -102,9 +101,7 @@ struct BuilderContext
102
101
FreeRegions fn_free_regions{{}};
103
102
104
103
public:
105
- BuilderContext ()
106
- : tyctx (*Resolver::TypeCheckContext::get ()),
107
- resolver (*Resolver::Resolver::get ())
104
+ BuilderContext () : tyctx (*Resolver::TypeCheckContext::get ())
108
105
{
109
106
basic_blocks.emplace_back (); // StartBB
110
107
}
@@ -403,69 +400,43 @@ class AbstractBuilder
403
400
404
401
template <typename T> NodeId resolve_label (T &expr)
405
402
{
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;
422
410
}
423
411
424
412
template <typename T> PlaceId resolve_variable (T &variable)
425
413
{
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);
442
421
}
443
422
444
423
template <typename T>
445
424
PlaceId resolve_variable_or_fn (T &variable, TyTy::BaseType *ty)
446
425
{
447
426
ty = (ty) ? ty : lookup_type (variable);
427
+
448
428
// Unlike variables,
449
429
// 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
- }
465
430
if (ty->is <TyTy::FnType> ())
466
431
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);
469
440
}
470
441
471
442
protected: // Implicit conversions.
0 commit comments