Skip to content

Commit 78a1d69

Browse files
Polygonalrphilberty
authored andcommitted
gccrs: Refactor HIR::PatternItem class and its derivatives
Renames HIR::TupleItems to PatternItems for better generalization because it will be reused for SlicePattern in the future. Enum values MULTIPLE/RANGED are renamed to NO_REST/HAS_REST to reduce misleadingness as it is completely different and separate from the ranged values `..` representation. This results in renaming of all related classes and updates to all code that references them. gcc/rust/ChangeLog: * hir/tree/rust-hir-pattern.h: - Rename TupleItems to PatternItems. - Rename TuplePatternItemsMultiple/Ranged & TupleStructItemsRange/NoRange to TuplePatternItemsNoRest/HasRest and TupleStructItemsNoRest/HasRest. - Update enum values to NO_REST/HAS_REST. - Rename clone_tuple_items_impl to clone_pattern_items_impl. * hir/tree/rust-hir-full-decls.h: Renamed the classes accordingly. * hir/tree/rust-hir-visitor.h: Renamed the classes accordingly. * hir/tree/rust-hir-visitor.cc: Renamed the classes accordingly. * hir/rust-hir-dump.h: Renamed the classes accordingly. * hir/rust-hir-dump.cc: Renamed the classes accordingly. * hir/tree/rust-hir.cc: Renamed the classes accordingly. * hir/rust-ast-lower-base.cc: Renamed the classes accordingly. * hir/rust-ast-lower-pattern.cc: Renamed the classes accordingly. * backend/rust-compile-pattern.cc: Renamed the classes accordingly. * backend/rust-compile-var-decl.h: Renamed the classes accordingly. * checks/errors/borrowck/rust-bir-builder-pattern.cc: Renamed the classes accordingly. * checks/errors/borrowck/rust-bir-builder-struct.h: Renamed the classes accordingly. * checks/errors/borrowck/rust-function-collector.h: Renamed the classes accordingly. * checks/errors/rust-const-checker.cc: Renamed the classes accordingly. * checks/errors/rust-const-checker.h: Renamed the classes accordingly. * checks/errors/rust-hir-pattern-analysis.cc: Renamed the classes accordingly. * checks/errors/rust-hir-pattern-analysis.h: Renamed the classes accordingly. * checks/errors/rust-unsafe-checker.cc: Renamed the classes accordingly. * checks/errors/rust-unsafe-checker.h: Renamed the classes accordingly. * checks/errors/rust-readonly-check2.cc: Renamed the classes accordingly. * typecheck/rust-hir-type-check-pattern.cc: Update references to renamed classes and enum values. Signed-off-by: Yap Zhi Heng <[email protected]>
1 parent 8a0cd69 commit 78a1d69

22 files changed

+195
-191
lines changed

gcc/rust/backend/rust-compile-pattern.cc

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -354,17 +354,17 @@ CompilePatternCheckExpr::visit (HIR::TupleStructPattern &pattern)
354354
HIR::TupleStructItems &items = pattern.get_items ();
355355
switch (items.get_item_type ())
356356
{
357-
case HIR::TupleStructItems::RANGED:
357+
case HIR::TupleStructItems::HAS_REST:
358358
{
359359
// TODO
360360
rust_unreachable ();
361361
}
362362
break;
363363

364-
case HIR::TupleStructItems::MULTIPLE:
364+
case HIR::TupleStructItems::NO_REST:
365365
{
366-
HIR::TupleStructItemsNoRange &items_no_range
367-
= static_cast<HIR::TupleStructItemsNoRange &> (items);
366+
HIR::TupleStructItemsNoRest &items_no_range
367+
= static_cast<HIR::TupleStructItemsNoRest &> (items);
368368

369369
rust_assert (items_no_range.get_patterns ().size ()
370370
== variant->num_fields ());
@@ -428,10 +428,10 @@ CompilePatternCheckExpr::visit (HIR::TuplePattern &pattern)
428428

429429
switch (pattern.get_items ().get_item_type ())
430430
{
431-
case HIR::TuplePatternItems::RANGED:
431+
case HIR::TuplePatternItems::HAS_REST:
432432
{
433433
auto &items
434-
= static_cast<HIR::TuplePatternItemsRanged &> (pattern.get_items ());
434+
= static_cast<HIR::TuplePatternItemsHasRest &> (pattern.get_items ());
435435
size_t tuple_field_index = 0;
436436

437437
// lookup the type to find out number of fields
@@ -477,10 +477,10 @@ CompilePatternCheckExpr::visit (HIR::TuplePattern &pattern)
477477
}
478478
break;
479479

480-
case HIR::TuplePatternItems::MULTIPLE:
480+
case HIR::TuplePatternItems::NO_REST:
481481
{
482-
auto &items = static_cast<HIR::TuplePatternItemsMultiple &> (
483-
pattern.get_items ());
482+
auto &items
483+
= static_cast<HIR::TuplePatternItemsNoRest &> (pattern.get_items ());
484484
size_t tuple_field_index = 0;
485485

486486
for (auto &pat : items.get_patterns ())
@@ -628,17 +628,17 @@ CompilePatternBindings::visit (HIR::TupleStructPattern &pattern)
628628
HIR::TupleStructItems &items = pattern.get_items ();
629629
switch (items.get_item_type ())
630630
{
631-
case HIR::TupleStructItems::RANGED:
631+
case HIR::TupleStructItems::HAS_REST:
632632
{
633633
// TODO
634634
rust_unreachable ();
635635
}
636636
break;
637637

638-
case HIR::TupleStructItems::MULTIPLE:
638+
case HIR::TupleStructItems::NO_REST:
639639
{
640-
HIR::TupleStructItemsNoRange &items_no_range
641-
= static_cast<HIR::TupleStructItemsNoRange &> (items);
640+
HIR::TupleStructItemsNoRest &items_no_range
641+
= static_cast<HIR::TupleStructItemsNoRest &> (items);
642642

643643
rust_assert (items_no_range.get_patterns ().size ()
644644
== variant->num_fields ());
@@ -843,11 +843,11 @@ CompilePatternBindings::visit (HIR::TuplePattern &pattern)
843843

844844
switch (pattern.get_items ().get_item_type ())
845845
{
846-
case HIR::TuplePatternItems::ItemType::RANGED:
846+
case HIR::TuplePatternItems::ItemType::HAS_REST:
847847
{
848848
size_t tuple_idx = 0;
849849
auto &items
850-
= static_cast<HIR::TuplePatternItemsRanged &> (pattern.get_items ());
850+
= static_cast<HIR::TuplePatternItemsHasRest &> (pattern.get_items ());
851851

852852
auto &items_lower = items.get_lower_patterns ();
853853
auto &items_upper = items.get_upper_patterns ();
@@ -887,11 +887,11 @@ CompilePatternBindings::visit (HIR::TuplePattern &pattern)
887887

888888
return;
889889
}
890-
case HIR::TuplePatternItems::ItemType::MULTIPLE:
890+
case HIR::TuplePatternItems::ItemType::NO_REST:
891891
{
892892
size_t tuple_idx = 0;
893-
auto &items = static_cast<HIR::TuplePatternItemsMultiple &> (
894-
pattern.get_items ());
893+
auto &items
894+
= static_cast<HIR::TuplePatternItemsNoRest &> (pattern.get_items ());
895895

896896
for (auto &sub : items.get_patterns ())
897897
{
@@ -1024,11 +1024,11 @@ CompilePatternLet::visit (HIR::TuplePattern &pattern)
10241024

10251025
switch (pattern.get_items ().get_item_type ())
10261026
{
1027-
case HIR::TuplePatternItems::ItemType::RANGED:
1027+
case HIR::TuplePatternItems::ItemType::HAS_REST:
10281028
{
10291029
size_t tuple_idx = 0;
10301030
auto &items
1031-
= static_cast<HIR::TuplePatternItemsRanged &> (pattern.get_items ());
1031+
= static_cast<HIR::TuplePatternItemsHasRest &> (pattern.get_items ());
10321032

10331033
auto &items_lower = items.get_lower_patterns ();
10341034
auto &items_upper = items.get_upper_patterns ();
@@ -1069,11 +1069,11 @@ CompilePatternLet::visit (HIR::TuplePattern &pattern)
10691069

10701070
return;
10711071
}
1072-
case HIR::TuplePatternItems::ItemType::MULTIPLE:
1072+
case HIR::TuplePatternItems::ItemType::NO_REST:
10731073
{
10741074
size_t tuple_idx = 0;
1075-
auto &items = static_cast<HIR::TuplePatternItemsMultiple &> (
1076-
pattern.get_items ());
1075+
auto &items
1076+
= static_cast<HIR::TuplePatternItemsNoRest &> (pattern.get_items ());
10771077

10781078
for (auto &sub : items.get_patterns ())
10791079
{

gcc/rust/backend/rust-compile-var-decl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ class CompileVarDecl : public HIRCompileBase, public HIR::HIRPatternVisitor
7070
{
7171
switch (pattern.get_items ().get_item_type ())
7272
{
73-
case HIR::TuplePatternItems::ItemType::MULTIPLE:
73+
case HIR::TuplePatternItems::ItemType::NO_REST:
7474
{
7575
rust_assert (TREE_CODE (translated_type) == RECORD_TYPE);
76-
auto &items = static_cast<HIR::TuplePatternItemsMultiple &> (
76+
auto &items = static_cast<HIR::TuplePatternItemsNoRest &> (
7777
pattern.get_items ());
7878

7979
size_t offs = 0;

gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.cc

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -202,17 +202,17 @@ PatternBindingBuilder::visit (HIR::TuplePattern &pattern)
202202
size_t index = 0;
203203
switch (pattern.get_items ().get_item_type ())
204204
{
205-
case HIR::TuplePatternItems::MULTIPLE:
205+
case HIR::TuplePatternItems::NO_REST:
206206
{
207-
auto &items = static_cast<HIR::TuplePatternItemsMultiple &> (
208-
pattern.get_items ());
207+
auto &items
208+
= static_cast<HIR::TuplePatternItemsNoRest &> (pattern.get_items ());
209209
visit_tuple_fields (items.get_patterns (), saved, index);
210210
break;
211211
}
212-
case HIR::TuplePatternItems::RANGED:
212+
case HIR::TuplePatternItems::HAS_REST:
213213
{
214214
auto &items
215-
= static_cast<HIR::TuplePatternItemsRanged &> (pattern.get_items ());
215+
= static_cast<HIR::TuplePatternItemsHasRest &> (pattern.get_items ());
216216

217217
auto tyty = ctx.place_db[init.value ()].tyty;
218218
rust_assert (tyty->get_kind () == TyTy::TUPLE);
@@ -249,10 +249,10 @@ PatternBindingBuilder::visit (HIR::TupleStructPattern &pattern)
249249
size_t index = 0;
250250
switch (pattern.get_items ().get_item_type ())
251251
{
252-
case HIR::TupleStructItems::RANGED:
252+
case HIR::TupleStructItems::HAS_REST:
253253
{
254254
auto &items
255-
= static_cast<HIR::TupleStructItemsRange &> (pattern.get_items ());
255+
= static_cast<HIR::TupleStructItemsHasRest &> (pattern.get_items ());
256256

257257
rust_assert (type->get_kind () == TyTy::ADT);
258258
auto adt_ty = static_cast<TyTy::ADTType *> (type);
@@ -267,10 +267,10 @@ PatternBindingBuilder::visit (HIR::TupleStructPattern &pattern)
267267
visit_tuple_fields (items.get_upper_patterns (), saved, index);
268268
break;
269269
}
270-
case HIR::TupleStructItems::MULTIPLE:
270+
case HIR::TupleStructItems::NO_REST:
271271
{
272272
auto &items
273-
= static_cast<HIR::TupleStructItemsNoRange &> (pattern.get_items ());
273+
= static_cast<HIR::TupleStructItemsNoRest &> (pattern.get_items ());
274274
visit_tuple_fields (items.get_patterns (), saved, index);
275275
break;
276276
}

gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,23 +225,23 @@ class StructBuilder : public AbstractBuilder, public HIR::HIRFullVisitor
225225
rust_unreachable ();
226226
}
227227
void visit (HIR::StructPattern &pattern) override { rust_unreachable (); }
228-
void visit (HIR::TupleStructItemsNoRange &tuple_items) override
228+
void visit (HIR::TupleStructItemsNoRest &tuple_items) override
229229
{
230230
rust_unreachable ();
231231
}
232-
void visit (HIR::TupleStructItemsRange &tuple_items) override
232+
void visit (HIR::TupleStructItemsHasRest &tuple_items) override
233233
{
234234
rust_unreachable ();
235235
}
236236
void visit (HIR::TupleStructPattern &pattern) override
237237
{
238238
rust_unreachable ();
239239
}
240-
void visit (HIR::TuplePatternItemsMultiple &tuple_items) override
240+
void visit (HIR::TuplePatternItemsNoRest &tuple_items) override
241241
{
242242
rust_unreachable ();
243243
}
244-
void visit (HIR::TuplePatternItemsRanged &tuple_items) override
244+
void visit (HIR::TuplePatternItemsHasRest &tuple_items) override
245245
{
246246
rust_unreachable ();
247247
}

gcc/rust/checks/errors/borrowck/rust-function-collector.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,11 @@ class FunctionCollector : public HIR::HIRFullVisitor
170170
void visit (HIR::StructPatternFieldIdentPat &field) override {}
171171
void visit (HIR::StructPatternFieldIdent &field) override {}
172172
void visit (HIR::StructPattern &pattern) override {}
173-
void visit (HIR::TupleStructItemsNoRange &tuple_items) override {}
174-
void visit (HIR::TupleStructItemsRange &tuple_items) override {}
173+
void visit (HIR::TupleStructItemsNoRest &tuple_items) override {}
174+
void visit (HIR::TupleStructItemsHasRest &tuple_items) override {}
175175
void visit (HIR::TupleStructPattern &pattern) override {}
176-
void visit (HIR::TuplePatternItemsMultiple &tuple_items) override {}
177-
void visit (HIR::TuplePatternItemsRanged &tuple_items) override {}
176+
void visit (HIR::TuplePatternItemsNoRest &tuple_items) override {}
177+
void visit (HIR::TuplePatternItemsHasRest &tuple_items) override {}
178178
void visit (HIR::TuplePattern &pattern) override {}
179179
void visit (HIR::SlicePattern &pattern) override {}
180180
void visit (HIR::AltPattern &pattern) override {}

gcc/rust/checks/errors/rust-const-checker.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -813,23 +813,23 @@ ConstChecker::visit (StructPattern &)
813813
{}
814814

815815
void
816-
ConstChecker::visit (TupleStructItemsNoRange &)
816+
ConstChecker::visit (TupleStructItemsNoRest &)
817817
{}
818818

819819
void
820-
ConstChecker::visit (TupleStructItemsRange &)
820+
ConstChecker::visit (TupleStructItemsHasRest &)
821821
{}
822822

823823
void
824824
ConstChecker::visit (TupleStructPattern &)
825825
{}
826826

827827
void
828-
ConstChecker::visit (TuplePatternItemsMultiple &)
828+
ConstChecker::visit (TuplePatternItemsNoRest &)
829829
{}
830830

831831
void
832-
ConstChecker::visit (TuplePatternItemsRanged &)
832+
ConstChecker::visit (TuplePatternItemsHasRest &)
833833
{}
834834

835835
void

gcc/rust/checks/errors/rust-const-checker.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,11 @@ class ConstChecker : public HIRFullVisitor
180180
virtual void visit (StructPatternFieldIdentPat &field) override;
181181
virtual void visit (StructPatternFieldIdent &field) override;
182182
virtual void visit (StructPattern &pattern) override;
183-
virtual void visit (TupleStructItemsNoRange &tuple_items) override;
184-
virtual void visit (TupleStructItemsRange &tuple_items) override;
183+
virtual void visit (TupleStructItemsNoRest &tuple_items) override;
184+
virtual void visit (TupleStructItemsHasRest &tuple_items) override;
185185
virtual void visit (TupleStructPattern &pattern) override;
186-
virtual void visit (TuplePatternItemsMultiple &tuple_items) override;
187-
virtual void visit (TuplePatternItemsRanged &tuple_items) override;
186+
virtual void visit (TuplePatternItemsNoRest &tuple_items) override;
187+
virtual void visit (TuplePatternItemsHasRest &tuple_items) override;
188188
virtual void visit (TuplePattern &pattern) override;
189189
virtual void visit (SlicePattern &pattern) override;
190190
virtual void visit (AltPattern &pattern) override;

gcc/rust/checks/errors/rust-hir-pattern-analysis.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -640,23 +640,23 @@ PatternChecker::visit (StructPattern &)
640640
{}
641641

642642
void
643-
PatternChecker::visit (TupleStructItemsNoRange &)
643+
PatternChecker::visit (TupleStructItemsNoRest &)
644644
{}
645645

646646
void
647-
PatternChecker::visit (TupleStructItemsRange &)
647+
PatternChecker::visit (TupleStructItemsHasRest &)
648648
{}
649649

650650
void
651651
PatternChecker::visit (TupleStructPattern &)
652652
{}
653653

654654
void
655-
PatternChecker::visit (TuplePatternItemsMultiple &)
655+
PatternChecker::visit (TuplePatternItemsNoRest &)
656656
{}
657657

658658
void
659-
PatternChecker::visit (TuplePatternItemsRanged &)
659+
PatternChecker::visit (TuplePatternItemsHasRest &)
660660
{}
661661

662662
void
@@ -1213,10 +1213,10 @@ lower_tuple_pattern (Resolver::TypeCheckContext *ctx,
12131213
std::vector<DeconstructedPat> fields;
12141214
switch (elems.get_item_type ())
12151215
{
1216-
case HIR::TupleStructItems::ItemType::MULTIPLE:
1216+
case HIR::TupleStructItems::ItemType::NO_REST:
12171217
{
1218-
HIR::TupleStructItemsNoRange &multiple
1219-
= static_cast<HIR::TupleStructItemsNoRange &> (elems);
1218+
HIR::TupleStructItemsNoRest &multiple
1219+
= static_cast<HIR::TupleStructItemsNoRest &> (elems);
12201220

12211221
rust_assert (variant->get_fields ().size ()
12221222
== multiple.get_patterns ().size ());
@@ -1230,7 +1230,7 @@ lower_tuple_pattern (Resolver::TypeCheckContext *ctx,
12301230
return DeconstructedPat (ctor, arity, fields, pattern.get_locus ());
12311231
}
12321232
break;
1233-
case HIR::TupleStructItems::ItemType::RANGED:
1233+
case HIR::TupleStructItems::ItemType::HAS_REST:
12341234
{
12351235
// TODO: ranged tuple struct items
12361236
rust_unreachable ();

gcc/rust/checks/errors/rust-hir-pattern-analysis.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,11 @@ class PatternChecker : public HIR::HIRFullVisitor
153153
virtual void visit (StructPatternFieldIdentPat &field) override;
154154
virtual void visit (StructPatternFieldIdent &field) override;
155155
virtual void visit (StructPattern &pattern) override;
156-
virtual void visit (TupleStructItemsNoRange &tuple_items) override;
157-
virtual void visit (TupleStructItemsRange &tuple_items) override;
156+
virtual void visit (TupleStructItemsNoRest &tuple_items) override;
157+
virtual void visit (TupleStructItemsHasRest &tuple_items) override;
158158
virtual void visit (TupleStructPattern &pattern) override;
159-
virtual void visit (TuplePatternItemsMultiple &tuple_items) override;
160-
virtual void visit (TuplePatternItemsRanged &tuple_items) override;
159+
virtual void visit (TuplePatternItemsNoRest &tuple_items) override;
160+
virtual void visit (TuplePatternItemsHasRest &tuple_items) override;
161161
virtual void visit (TuplePattern &pattern) override;
162162
virtual void visit (SlicePattern &pattern) override;
163163
virtual void visit (AltPattern &pattern) override;

gcc/rust/checks/errors/rust-readonly-check2.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ ReadonlyChecker::collect_assignment_tuple (TuplePattern &tuple_pattern,
137137
{
138138
switch (tuple_pattern.get_items ().get_item_type ())
139139
{
140-
case HIR::TuplePatternItems::ItemType::MULTIPLE:
140+
case HIR::TuplePatternItems::ItemType::NO_REST:
141141
{
142-
auto &items = static_cast<HIR::TuplePatternItemsMultiple &> (
142+
auto &items = static_cast<HIR::TuplePatternItemsNoRest &> (
143143
tuple_pattern.get_items ());
144144
for (auto &sub : items.get_patterns ())
145145
{

0 commit comments

Comments
 (0)