File tree Expand file tree Collapse file tree 3 files changed +15
-0
lines changed
lib/AST/RequirementMachine Expand file tree Collapse file tree 3 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -335,6 +335,10 @@ std::string RequirementMachine::getRuleAsStringForDiagnostics(
335335 return out.str ();
336336}
337337
338+ ArrayRef<Rule> RequirementMachine::getLocalRules () const {
339+ return System.getLocalRules ();
340+ }
341+
338342bool RequirementMachine::isComplete () const {
339343 return Complete;
340344}
Original file line number Diff line number Diff line change @@ -158,6 +158,8 @@ class RequirementMachine final {
158158 std::vector<Requirement>
159159 computeMinimalGenericSignatureRequirements (bool reconstituteSugar);
160160
161+ ArrayRef<Rule> getLocalRules () const ;
162+
161163 std::string getRuleAsStringForDiagnostics (unsigned ruleID) const ;
162164
163165 GenericSignatureErrors getErrors () const ;
Original file line number Diff line number Diff line change @@ -144,10 +144,19 @@ class RewriteSystem final {
144144 return (unsigned )(&rule - &*Rules.begin ());
145145 }
146146
147+ // / Get an array of all rewrite rules.
147148 ArrayRef<Rule> getRules () const {
148149 return Rules;
149150 }
150151
152+ // / Get an array of rewrite rules, not including rewrite rules imported
153+ // / from referenced protocols.
154+ ArrayRef<Rule> getLocalRules () const {
155+ return getRules ().slice (FirstLocalRule);
156+ }
157+
158+ // / Get the rewrite rule at the given index. Note that this is an index
159+ // / into getRules(), *NOT* getLocalRules().
151160 Rule &getRule (unsigned ruleID) {
152161 return Rules[ruleID];
153162 }
You can’t perform that action at this time.
0 commit comments