Skip to content

Commit 00eca7e

Browse files
committed
RequirementMachine: Add reverse iterators over Term and MutableTerm
I thought I needed these for something but turns out that I don't, but there's no harm in adding them since surely they will come up eventually.
1 parent 9fd16ca commit 00eca7e

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

lib/AST/RequirementMachine/RewriteSystem.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -687,14 +687,22 @@ struct Term::Storage final
687687

688688
size_t Term::size() const { return Ptr->Size; }
689689

690-
ArrayRef<Atom>::const_iterator Term::begin() const {
690+
ArrayRef<Atom>::iterator Term::begin() const {
691691
return Ptr->getElements().begin();
692692
}
693693

694-
ArrayRef<Atom>::const_iterator Term::end() const {
694+
ArrayRef<Atom>::iterator Term::end() const {
695695
return Ptr->getElements().end();
696696
}
697697

698+
ArrayRef<Atom>::reverse_iterator Term::rbegin() const {
699+
return Ptr->getElements().rbegin();
700+
}
701+
702+
ArrayRef<Atom>::reverse_iterator Term::rend() const {
703+
return Ptr->getElements().rend();
704+
}
705+
698706
Atom Term::back() const {
699707
return Ptr->getElements().back();
700708
}

lib/AST/RequirementMachine/RewriteSystem.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,11 @@ class Term final {
256256
public:
257257
size_t size() const;
258258

259-
ArrayRef<Atom>::const_iterator begin() const;
259+
ArrayRef<Atom>::iterator begin() const;
260+
ArrayRef<Atom>::iterator end() const;
260261

261-
ArrayRef<Atom>::const_iterator end() const;
262+
ArrayRef<Atom>::reverse_iterator rbegin() const;
263+
ArrayRef<Atom>::reverse_iterator rend() const;
262264

263265
Atom back() const;
264266

@@ -344,6 +346,12 @@ class MutableTerm final {
344346
decltype(Atoms)::iterator begin() { return Atoms.begin(); }
345347
decltype(Atoms)::iterator end() { return Atoms.end(); }
346348

349+
decltype(Atoms)::const_reverse_iterator rbegin() const { return Atoms.rbegin(); }
350+
decltype(Atoms)::const_reverse_iterator rend() const { return Atoms.rend(); }
351+
352+
decltype(Atoms)::reverse_iterator rbegin() { return Atoms.rbegin(); }
353+
decltype(Atoms)::reverse_iterator rend() { return Atoms.rend(); }
354+
347355
Atom back() const {
348356
return Atoms.back();
349357
}

0 commit comments

Comments
 (0)