|
23 | 23 | #include "rust-hir-item.h"
|
24 | 24 | #include "rust-attribute-values.h"
|
25 | 25 | #include "rust-system.h"
|
| 26 | +#include "rust-immutable-name-resolution-context.h" |
| 27 | + |
| 28 | +// for flag_name_resolution_2_0 |
| 29 | +#include "options.h" |
26 | 30 |
|
27 | 31 | namespace Rust {
|
28 | 32 | namespace HIR {
|
@@ -216,8 +220,23 @@ UnsafeChecker::visit (PathInExpression &path)
|
216 | 220 | NodeId ast_node_id = path.get_mappings ().get_nodeid ();
|
217 | 221 | NodeId ref_node_id;
|
218 | 222 |
|
219 |
| - if (!resolver.lookup_resolved_name (ast_node_id, &ref_node_id)) |
220 |
| - return; |
| 223 | + if (flag_name_resolution_2_0) |
| 224 | + { |
| 225 | + auto &nr_ctx |
| 226 | + = Resolver2_0::ImmutableNameResolutionContext::get ().resolver (); |
| 227 | + |
| 228 | + auto resolved = nr_ctx.lookup (ast_node_id); |
| 229 | + |
| 230 | + if (!resolved.has_value ()) |
| 231 | + return; |
| 232 | + |
| 233 | + ref_node_id = resolved.value (); |
| 234 | + } |
| 235 | + else |
| 236 | + { |
| 237 | + if (!resolver.lookup_resolved_name (ast_node_id, &ref_node_id)) |
| 238 | + return; |
| 239 | + } |
221 | 240 |
|
222 | 241 | if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
|
223 | 242 | {
|
@@ -418,8 +437,23 @@ UnsafeChecker::visit (CallExpr &expr)
|
418 | 437 | // There are no unsafe types, and functions are defined in the name resolver.
|
419 | 438 | // If we can't find the name, then we're dealing with a type and should return
|
420 | 439 | // early.
|
421 |
| - if (!resolver.lookup_resolved_name (ast_node_id, &ref_node_id)) |
422 |
| - return; |
| 440 | + if (flag_name_resolution_2_0) |
| 441 | + { |
| 442 | + auto &nr_ctx |
| 443 | + = Resolver2_0::ImmutableNameResolutionContext::get ().resolver (); |
| 444 | + |
| 445 | + auto resolved = nr_ctx.lookup (ast_node_id); |
| 446 | + |
| 447 | + if (!resolved.has_value ()) |
| 448 | + return; |
| 449 | + |
| 450 | + ref_node_id = resolved.value (); |
| 451 | + } |
| 452 | + else |
| 453 | + { |
| 454 | + if (!resolver.lookup_resolved_name (ast_node_id, &ref_node_id)) |
| 455 | + return; |
| 456 | + } |
423 | 457 |
|
424 | 458 | if (auto definition_id = mappings.lookup_node_to_hir (ref_node_id))
|
425 | 459 | {
|
|
0 commit comments