Branch data Line data Source code
1 : : // Copyright (C) 2020-2025 Free Software Foundation, Inc.
2 : :
3 : : // This file is part of GCC.
4 : :
5 : : // GCC is free software; you can redistribute it and/or modify it under
6 : : // the terms of the GNU General Public License as published by the Free
7 : : // Software Foundation; either version 3, or (at your option) any later
8 : : // version.
9 : :
10 : : // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 : : // WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 : : // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 : : // for more details.
14 : :
15 : : // You should have received a copy of the GNU General Public License
16 : : // along with GCC; see the file COPYING3. If not see
17 : : // <http://www.gnu.org/licenses/>.
18 : :
19 : : #include "rust-ast-resolve-base.h"
20 : : #include "rust-ast-resolve-expr.h"
21 : : #include "rust-ast-resolve-path.h"
22 : : #include "rust-item.h"
23 : : #include "rust-path.h"
24 : :
25 : : namespace Rust {
26 : : namespace Resolver {
27 : :
28 : : bool
29 : 31185 : ResolverBase::resolve_visibility (const AST::Visibility &vis)
30 : : {
31 : 31185 : if (vis.has_path ())
32 : : {
33 : 14 : auto path = vis.get_path ();
34 : 14 : ResolvePath::go (path);
35 : :
36 : : // Do we need to lookup something here?
37 : : // Is it just about resolving the names correctly so we can look them up
38 : : // later?
39 : 14 : }
40 : :
41 : 31185 : return true;
42 : : }
43 : :
44 : : // Default visitors implementations
45 : :
46 : : void
47 : 0 : ResolverBase::visit (AST::Token &)
48 : 0 : {}
49 : :
50 : : void
51 : 0 : ResolverBase::visit (AST::DelimTokenTree &)
52 : 0 : {}
53 : :
54 : : void
55 : 0 : ResolverBase::visit (AST::AttrInputMetaItemContainer &)
56 : 0 : {}
57 : :
58 : : void
59 : 0 : ResolverBase::visit (AST::IdentifierExpr &)
60 : 0 : {}
61 : :
62 : : void
63 : 12 : ResolverBase::visit (AST::Lifetime &)
64 : 12 : {}
65 : :
66 : : void
67 : 348 : ResolverBase::visit (AST::LifetimeParam &)
68 : 348 : {}
69 : :
70 : : void
71 : 0 : ResolverBase::visit (AST::ConstGenericParam &)
72 : 0 : {}
73 : :
74 : : void
75 : 0 : ResolverBase::visit (AST::PathInExpression &)
76 : 0 : {}
77 : :
78 : : void
79 : 0 : ResolverBase::visit (AST::TypePathSegment &)
80 : 0 : {}
81 : :
82 : : void
83 : 0 : ResolverBase::visit (AST::TypePathSegmentGeneric &)
84 : 0 : {}
85 : :
86 : : void
87 : 0 : ResolverBase::visit (AST::TypePathSegmentFunction &)
88 : 0 : {}
89 : :
90 : : void
91 : 0 : ResolverBase::visit (AST::TypePath &)
92 : 0 : {}
93 : :
94 : : void
95 : 0 : ResolverBase::visit (AST::QualifiedPathInExpression &)
96 : 0 : {}
97 : :
98 : : void
99 : 0 : ResolverBase::visit (AST::QualifiedPathInType &)
100 : 0 : {}
101 : :
102 : : void
103 : 16324 : ResolverBase::visit (AST::LiteralExpr &)
104 : 16324 : {}
105 : :
106 : : void
107 : 0 : ResolverBase::visit (AST::AttrInputLiteral &)
108 : 0 : {}
109 : :
110 : : void
111 : 0 : ResolverBase::visit (AST::AttrInputMacro &)
112 : 0 : {}
113 : :
114 : : void
115 : 0 : ResolverBase::visit (AST::MetaItemLitExpr &)
116 : 0 : {}
117 : :
118 : : void
119 : 0 : ResolverBase::visit (AST::MetaItemPathLit &)
120 : 0 : {}
121 : :
122 : : void
123 : 0 : ResolverBase::visit (AST::BorrowExpr &)
124 : 0 : {}
125 : :
126 : : void
127 : 0 : ResolverBase::visit (AST::DereferenceExpr &)
128 : 0 : {}
129 : :
130 : : void
131 : 0 : ResolverBase::visit (AST::ErrorPropagationExpr &)
132 : 0 : {}
133 : :
134 : : void
135 : 0 : ResolverBase::visit (AST::NegationExpr &)
136 : 0 : {}
137 : :
138 : : void
139 : 0 : ResolverBase::visit (AST::ArithmeticOrLogicalExpr &)
140 : 0 : {}
141 : :
142 : : void
143 : 0 : ResolverBase::visit (AST::ComparisonExpr &)
144 : 0 : {}
145 : :
146 : : void
147 : 0 : ResolverBase::visit (AST::LazyBooleanExpr &)
148 : 0 : {}
149 : :
150 : : void
151 : 0 : ResolverBase::visit (AST::TypeCastExpr &)
152 : 0 : {}
153 : :
154 : : void
155 : 0 : ResolverBase::visit (AST::AssignmentExpr &)
156 : 0 : {}
157 : :
158 : : void
159 : 0 : ResolverBase::visit (AST::CompoundAssignmentExpr &)
160 : 0 : {}
161 : :
162 : : void
163 : 0 : ResolverBase::visit (AST::GroupedExpr &)
164 : 0 : {}
165 : :
166 : : void
167 : 0 : ResolverBase::visit (AST::ArrayElemsValues &)
168 : 0 : {}
169 : :
170 : : void
171 : 0 : ResolverBase::visit (AST::ArrayElemsCopied &)
172 : 0 : {}
173 : :
174 : : void
175 : 0 : ResolverBase::visit (AST::ArrayExpr &)
176 : 0 : {}
177 : :
178 : : void
179 : 0 : ResolverBase::visit (AST::ArrayIndexExpr &)
180 : 0 : {}
181 : :
182 : : void
183 : 0 : ResolverBase::visit (AST::TupleExpr &)
184 : 0 : {}
185 : :
186 : : void
187 : 0 : ResolverBase::visit (AST::TupleIndexExpr &)
188 : 0 : {}
189 : :
190 : : void
191 : 0 : ResolverBase::visit (AST::StructExprStruct &)
192 : 0 : {}
193 : :
194 : : void
195 : 0 : ResolverBase::visit (AST::StructExprFieldIdentifier &)
196 : 0 : {}
197 : :
198 : : void
199 : 0 : ResolverBase::visit (AST::StructExprFieldIdentifierValue &)
200 : 0 : {}
201 : :
202 : : void
203 : 0 : ResolverBase::visit (AST::StructExprFieldIndexValue &)
204 : 0 : {}
205 : :
206 : : void
207 : 0 : ResolverBase::visit (AST::StructExprStructFields &)
208 : 0 : {}
209 : :
210 : : void
211 : 0 : ResolverBase::visit (AST::StructExprStructBase &)
212 : 0 : {}
213 : :
214 : : void
215 : 0 : ResolverBase::visit (AST::CallExpr &)
216 : 0 : {}
217 : :
218 : : void
219 : 0 : ResolverBase::visit (AST::MethodCallExpr &)
220 : 0 : {}
221 : :
222 : : void
223 : 0 : ResolverBase::visit (AST::FieldAccessExpr &)
224 : 0 : {}
225 : :
226 : : void
227 : 0 : ResolverBase::visit (AST::ClosureExprInner &)
228 : 0 : {}
229 : :
230 : : void
231 : 0 : ResolverBase::visit (AST::BlockExpr &)
232 : 0 : {}
233 : :
234 : : void
235 : 0 : ResolverBase::visit (AST::ClosureExprInnerTyped &)
236 : 0 : {}
237 : :
238 : : void
239 : 0 : ResolverBase::visit (AST::ContinueExpr &)
240 : 0 : {}
241 : :
242 : : void
243 : 0 : ResolverBase::visit (AST::BreakExpr &)
244 : 0 : {}
245 : :
246 : : void
247 : 0 : ResolverBase::visit (AST::RangeFromToExpr &)
248 : 0 : {}
249 : :
250 : : void
251 : 0 : ResolverBase::visit (AST::RangeFromExpr &)
252 : 0 : {}
253 : :
254 : : void
255 : 0 : ResolverBase::visit (AST::RangeToExpr &)
256 : 0 : {}
257 : :
258 : : void
259 : 0 : ResolverBase::visit (AST::RangeFullExpr &)
260 : 0 : {}
261 : :
262 : : void
263 : 0 : ResolverBase::visit (AST::RangeFromToInclExpr &)
264 : 0 : {}
265 : :
266 : : void
267 : 0 : ResolverBase::visit (AST::RangeToInclExpr &)
268 : 0 : {}
269 : :
270 : : void
271 : 0 : ResolverBase::visit (AST::BoxExpr &)
272 : 0 : {}
273 : :
274 : : void
275 : 0 : ResolverBase::visit (AST::ReturnExpr &)
276 : 0 : {}
277 : :
278 : : void
279 : 0 : ResolverBase::visit (AST::UnsafeBlockExpr &)
280 : 0 : {}
281 : :
282 : : void
283 : 0 : ResolverBase::visit (AST::LoopExpr &)
284 : 0 : {}
285 : :
286 : : void
287 : 0 : ResolverBase::visit (AST::WhileLoopExpr &)
288 : 0 : {}
289 : :
290 : : void
291 : 0 : ResolverBase::visit (AST::WhileLetLoopExpr &)
292 : 0 : {}
293 : :
294 : : void
295 : 0 : ResolverBase::visit (AST::ForLoopExpr &)
296 : 0 : {}
297 : :
298 : : void
299 : 0 : ResolverBase::visit (AST::IfExpr &)
300 : 0 : {}
301 : :
302 : : void
303 : 0 : ResolverBase::visit (AST::IfExprConseqElse &)
304 : 0 : {}
305 : :
306 : : void
307 : 0 : ResolverBase::visit (AST::IfLetExpr &)
308 : 0 : {}
309 : :
310 : : void
311 : 0 : ResolverBase::visit (AST::IfLetExprConseqElse &)
312 : 0 : {}
313 : :
314 : : void
315 : 0 : ResolverBase::visit (AST::MatchExpr &)
316 : 0 : {}
317 : :
318 : : void
319 : 0 : ResolverBase::visit (AST::AwaitExpr &)
320 : 0 : {}
321 : :
322 : : void
323 : 0 : ResolverBase::visit (AST::AsyncBlockExpr &)
324 : 0 : {}
325 : :
326 : : void
327 : 0 : ResolverBase::visit (AST::InlineAsm &)
328 : 0 : {}
329 : :
330 : : void
331 : 0 : ResolverBase::visit (AST::TypeParam &)
332 : 0 : {}
333 : :
334 : : void
335 : 2 : ResolverBase::visit (AST::LifetimeWhereClauseItem &)
336 : 2 : {}
337 : :
338 : : void
339 : 0 : ResolverBase::visit (AST::TypeBoundWhereClauseItem &)
340 : 0 : {}
341 : :
342 : : void
343 : 0 : ResolverBase::visit (AST::Module &)
344 : 0 : {}
345 : :
346 : : void
347 : 24 : ResolverBase::visit (AST::ExternCrate &)
348 : 24 : {}
349 : :
350 : : void
351 : 0 : ResolverBase::visit (AST::UseTreeGlob &)
352 : 0 : {}
353 : :
354 : : void
355 : 0 : ResolverBase::visit (AST::UseTreeList &)
356 : 0 : {}
357 : :
358 : : void
359 : 0 : ResolverBase::visit (AST::UseTreeRebind &)
360 : 0 : {}
361 : :
362 : : void
363 : 411 : ResolverBase::visit (AST::UseDeclaration &)
364 : 411 : {}
365 : :
366 : : void
367 : 0 : ResolverBase::visit (AST::Function &)
368 : 0 : {}
369 : :
370 : : void
371 : 1 : ResolverBase::visit (AST::TypeAlias &)
372 : 1 : {}
373 : :
374 : : void
375 : 0 : ResolverBase::visit (AST::StructStruct &)
376 : 0 : {}
377 : :
378 : : void
379 : 0 : ResolverBase::visit (AST::TupleStruct &)
380 : 0 : {}
381 : :
382 : : void
383 : 0 : ResolverBase::visit (AST::EnumItem &)
384 : 0 : {}
385 : :
386 : : void
387 : 0 : ResolverBase::visit (AST::EnumItemTuple &)
388 : 0 : {}
389 : :
390 : : void
391 : 0 : ResolverBase::visit (AST::EnumItemStruct &)
392 : 0 : {}
393 : :
394 : : void
395 : 0 : ResolverBase::visit (AST::EnumItemDiscriminant &)
396 : 0 : {}
397 : :
398 : : void
399 : 0 : ResolverBase::visit (AST::Enum &)
400 : 0 : {}
401 : :
402 : : void
403 : 0 : ResolverBase::visit (AST::Union &)
404 : 0 : {}
405 : :
406 : : void
407 : 0 : ResolverBase::visit (AST::ConstantItem &)
408 : 0 : {}
409 : :
410 : : void
411 : 0 : ResolverBase::visit (AST::StaticItem &)
412 : 0 : {}
413 : :
414 : : void
415 : 0 : ResolverBase::visit (AST::TraitItemConst &)
416 : 0 : {}
417 : :
418 : : void
419 : 0 : ResolverBase::visit (AST::TraitItemType &)
420 : 0 : {}
421 : :
422 : : void
423 : 0 : ResolverBase::visit (AST::Trait &)
424 : 0 : {}
425 : :
426 : : void
427 : 0 : ResolverBase::visit (AST::InherentImpl &)
428 : 0 : {}
429 : :
430 : : void
431 : 0 : ResolverBase::visit (AST::TraitImpl &)
432 : 0 : {}
433 : :
434 : : void
435 : 0 : ResolverBase::visit (AST::ExternalTypeItem &)
436 : 0 : {}
437 : :
438 : : void
439 : 0 : ResolverBase::visit (AST::ExternalStaticItem &)
440 : 0 : {}
441 : :
442 : : void
443 : 0 : ResolverBase::visit (AST::ExternBlock &)
444 : 0 : {}
445 : :
446 : : void
447 : 0 : ResolverBase::visit (AST::MacroMatchFragment &)
448 : 0 : {}
449 : :
450 : : void
451 : 0 : ResolverBase::visit (AST::MacroMatchRepetition &)
452 : 0 : {}
453 : :
454 : : void
455 : 0 : ResolverBase::visit (AST::MacroMatcher &)
456 : 0 : {}
457 : :
458 : : void
459 : 2420 : ResolverBase::visit (AST::MacroRulesDefinition &)
460 : 2420 : {}
461 : :
462 : : void
463 : 7 : ResolverBase::visit (AST::MacroInvocation &)
464 : 7 : {}
465 : :
466 : : void
467 : 0 : ResolverBase::visit (AST::MetaItemPath &)
468 : 0 : {}
469 : :
470 : : void
471 : 0 : ResolverBase::visit (AST::MetaItemSeq &)
472 : 0 : {}
473 : :
474 : : void
475 : 0 : ResolverBase::visit (AST::MetaWord &)
476 : 0 : {}
477 : :
478 : : void
479 : 0 : ResolverBase::visit (AST::MetaNameValueStr &)
480 : 0 : {}
481 : :
482 : : void
483 : 0 : ResolverBase::visit (AST::MetaListPaths &)
484 : 0 : {}
485 : :
486 : : void
487 : 0 : ResolverBase::visit (AST::MetaListNameValueStr &)
488 : 0 : {}
489 : :
490 : : void
491 : 166 : ResolverBase::visit (AST::LiteralPattern &)
492 : 166 : {}
493 : :
494 : : void
495 : 0 : ResolverBase::visit (AST::IdentifierPattern &)
496 : 0 : {}
497 : :
498 : : void
499 : 514 : ResolverBase::visit (AST::WildcardPattern &)
500 : 514 : {}
501 : :
502 : : void
503 : 0 : ResolverBase::visit (AST::RestPattern &)
504 : 0 : {}
505 : :
506 : : void
507 : 0 : ResolverBase::visit (AST::RangePatternBoundLiteral &)
508 : 0 : {}
509 : :
510 : : void
511 : 0 : ResolverBase::visit (AST::RangePatternBoundPath &)
512 : 0 : {}
513 : :
514 : : void
515 : 0 : ResolverBase::visit (AST::RangePatternBoundQualPath &)
516 : 0 : {}
517 : :
518 : : void
519 : 0 : ResolverBase::visit (AST::RangePattern &)
520 : 0 : {}
521 : :
522 : : void
523 : 0 : ResolverBase::visit (AST::ReferencePattern &)
524 : 0 : {}
525 : :
526 : : void
527 : 0 : ResolverBase::visit (AST::StructPatternFieldTuplePat &)
528 : 0 : {}
529 : :
530 : : void
531 : 0 : ResolverBase::visit (AST::StructPatternFieldIdentPat &)
532 : 0 : {}
533 : :
534 : : void
535 : 0 : ResolverBase::visit (AST::StructPatternFieldIdent &)
536 : 0 : {}
537 : :
538 : : void
539 : 0 : ResolverBase::visit (AST::StructPattern &)
540 : 0 : {}
541 : :
542 : : void
543 : 0 : ResolverBase::visit (AST::TupleStructItemsNoRange &)
544 : 0 : {}
545 : :
546 : : void
547 : 0 : ResolverBase::visit (AST::TupleStructItemsRange &)
548 : 0 : {}
549 : :
550 : : void
551 : 0 : ResolverBase::visit (AST::TupleStructPattern &)
552 : 0 : {}
553 : :
554 : : void
555 : 0 : ResolverBase::visit (AST::TuplePatternItemsMultiple &)
556 : 0 : {}
557 : :
558 : : void
559 : 0 : ResolverBase::visit (AST::TuplePatternItemsRanged &)
560 : 0 : {}
561 : :
562 : : void
563 : 0 : ResolverBase::visit (AST::TuplePattern &)
564 : 0 : {}
565 : :
566 : : void
567 : 0 : ResolverBase::visit (AST::GroupedPattern &)
568 : 0 : {}
569 : :
570 : : void
571 : 0 : ResolverBase::visit (AST::SlicePattern &)
572 : 0 : {}
573 : :
574 : : void
575 : 0 : ResolverBase::visit (AST::AltPattern &)
576 : 0 : {}
577 : :
578 : : void
579 : 73 : ResolverBase::visit (AST::EmptyStmt &)
580 : 73 : {}
581 : :
582 : : void
583 : 0 : ResolverBase::visit (AST::LetStmt &)
584 : 0 : {}
585 : :
586 : : void
587 : 0 : ResolverBase::visit (AST::ExprStmt &)
588 : 0 : {}
589 : :
590 : : void
591 : 0 : ResolverBase::visit (AST::TraitBound &)
592 : 0 : {}
593 : :
594 : : void
595 : 0 : ResolverBase::visit (AST::ImplTraitType &)
596 : 0 : {}
597 : :
598 : : void
599 : 0 : ResolverBase::visit (AST::TraitObjectType &)
600 : 0 : {}
601 : :
602 : : void
603 : 0 : ResolverBase::visit (AST::ParenthesisedType &)
604 : 0 : {}
605 : :
606 : : void
607 : 0 : ResolverBase::visit (AST::ImplTraitTypeOneBound &)
608 : 0 : {}
609 : :
610 : : void
611 : 0 : ResolverBase::visit (AST::TraitObjectTypeOneBound &)
612 : 0 : {}
613 : :
614 : : void
615 : 0 : ResolverBase::visit (AST::TupleType &)
616 : 0 : {}
617 : :
618 : : void
619 : 0 : ResolverBase::visit (AST::NeverType &)
620 : 0 : {}
621 : :
622 : : void
623 : 0 : ResolverBase::visit (AST::RawPointerType &)
624 : 0 : {}
625 : :
626 : : void
627 : 0 : ResolverBase::visit (AST::ReferenceType &)
628 : 0 : {}
629 : :
630 : : void
631 : 0 : ResolverBase::visit (AST::ArrayType &)
632 : 0 : {}
633 : :
634 : : void
635 : 0 : ResolverBase::visit (AST::SliceType &)
636 : 0 : {}
637 : :
638 : : void
639 : 0 : ResolverBase::visit (AST::InferredType &)
640 : 0 : {}
641 : :
642 : : void
643 : 0 : ResolverBase::visit (AST::BareFunctionType &)
644 : 0 : {}
645 : :
646 : : void
647 : 0 : ResolverBase::visit (AST::SelfParam &)
648 : 0 : {}
649 : :
650 : : void
651 : 0 : ResolverBase::visit (AST::VariadicParam &)
652 : 0 : {}
653 : :
654 : : void
655 : 0 : ResolverBase::visit (AST::FunctionParam &)
656 : 0 : {}
657 : :
658 : : void
659 : 0 : ResolverBase::visit (AST::FormatArgs &fmt)
660 : 0 : {}
661 : :
662 : : } // namespace Resolver
663 : : } // namespace Rust
|