Skip to content

Commit b263e45

Browse files
author
David Ungar
committed
Putative ordering fix.
1 parent 3cd1d9a commit b263e45

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

lib/AST/ASTScopeCreation.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -605,20 +605,24 @@ class ScopeCreator final {
605605
};
606606
const auto r1 = getRangeableSourceRange(n1);
607607
const auto r2 = getRangeableSourceRange(n2);
608-
const int startOrder = cmpLoc(r1.Start, r2.Start);
609608
const int endOrder = cmpLoc(r1.End, r2.End);
610609

611610
#ifndef NDEBUG
611+
const int startOrder = cmpLoc(r1.Start, r2.Start);
612+
612613
if (startOrder * endOrder == -1) {
613614
llvm::errs() << "*** Start order contradicts end order between: ***\n";
614615
dumpRangeable(n1, llvm::errs());
615616
llvm::errs() << "\n*** and: ***\n";
616617
dumpRangeable(n2, llvm::errs());
617618
}
618-
#endif
619619
ASTScopeAssert(startOrder * endOrder != -1,
620620
"Start order contradicts end order");
621-
return startOrder + endOrder < 1;
621+
// When building Swift.o can see two nodes for same AccessorDecl.
622+
ASTScopeAssert(r1 == r2 || endOrder != 0,
623+
"Must have unambiguous ordering for scope-lookup to work");
624+
#endif
625+
return endOrder < 1;
622626
}
623627

624628
static bool isVarDeclInPatternBindingDecl(ASTNode n1, ASTNode n2) {

0 commit comments

Comments
 (0)