Skip to content

Commit fd4915a

Browse files
committed
Ruby: CFG: add default implementation for getAnInnerCompatibleCompletion
1 parent 9d288c9 commit fd4915a

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

ruby/ql/lib/codeql/ruby/controlflow/internal/Completion.qll

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,9 @@ abstract class NestedCompletion extends Completion, TNestedCompletion {
469469
NestedCompletion() { this = TNestedCompletion(inner, outer, nestLevel) }
470470

471471
/** Gets a completion that is compatible with the inner completion. */
472-
abstract Completion getAnInnerCompatibleCompletion();
472+
Completion getAnInnerCompatibleCompletion() {
473+
result.getOuterCompletion() = this.getInnerCompletion()
474+
}
473475

474476
/** Gets the level of this nested completion. */
475477
final int getNestLevel() { result = nestLevel }
@@ -512,10 +514,6 @@ class NestedEnsureCompletion extends NestedCompletion {
512514

513515
override Completion getOuterCompletion() { result = outer }
514516

515-
override Completion getAnInnerCompatibleCompletion() {
516-
result.getOuterCompletion() = this.getInnerCompletion()
517-
}
518-
519517
override SuccessorType getAMatchingSuccessorType() { none() }
520518
}
521519

@@ -546,10 +544,6 @@ class NestedMatchingCompletion extends NestedCompletion, MatchingCompletion {
546544

547545
override MatchingCompletion getOuterCompletion() { result = outer }
548546

549-
override Completion getAnInnerCompatibleCompletion() {
550-
result.getOuterCompletion() = this.getInnerCompletion()
551-
}
552-
553547
override BooleanSuccessor getAMatchingSuccessorType() {
554548
result.getValue() = this.getInnerCompletion().getValue()
555549
}

0 commit comments

Comments
 (0)