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