Skip to content

Commit 4d1a8df

Browse files
committed
RequirementMachine: Don't record no-op PrefixSubstitutions rewrite steps
1 parent 50f84cb commit 4d1a8df

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

lib/AST/RequirementMachine/PropertyMap.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,9 +478,11 @@ PropertyMap::concretelySimplifySubstitutions(Term baseTerm, Symbol symbol,
478478
/*ruleID=*/*props->ConcreteTypeRule,
479479
/*inverse=*/true));
480480

481-
path->add(RewriteStep::forPrefixSubstitutions(/*length=*/prefix.size(),
482-
/*endOffset=*/0,
483-
/*inverse=*/false));
481+
if (!prefix.empty()) {
482+
path->add(RewriteStep::forPrefixSubstitutions(/*length=*/prefix.size(),
483+
/*endOffset=*/0,
484+
/*inverse=*/false));
485+
}
484486
}
485487
}
486488
}

lib/AST/RequirementMachine/RewriteLoop.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,8 @@ RewritePathEvaluator::applyRewriteRule(const RewriteStep &step,
295295
std::pair<MutableTerm, MutableTerm>
296296
RewritePathEvaluator::applyPrefixSubstitutions(const RewriteStep &step,
297297
const RewriteSystem &system) {
298+
assert(step.Arg != 0);
299+
298300
auto &term = getCurrentTerm();
299301

300302
assert(step.Kind == RewriteStep::PrefixSubstitutions);

0 commit comments

Comments
 (0)