Skip to content

Commit 6a26483

Browse files
authored
Merge pull request #159 from github/hvitved/herdoc-body-rank-performance
Improve performance of `HereDoc::getBody()`
2 parents b293522 + 2891d94 commit 6a26483

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

ql/src/codeql_ruby/ast/Literal.qll

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,16 @@ class CharacterLiteral extends Literal, TCharacterLiteral {
523523
final override string getAPrimaryQlClass() { result = "CharacterLiteral" }
524524
}
525525

526+
pragma[noinline]
527+
private predicate rankHeredocBody(File f, Generated::HeredocBody b, int i) {
528+
b =
529+
rank[i](Generated::HeredocBody b0 |
530+
f = b0.getLocation().getFile()
531+
|
532+
b0 order by b0.getLocation().getStartLine(), b0.getLocation().getStartColumn()
533+
)
534+
}
535+
526536
/**
527537
* A "here document". For example:
528538
* ```rb
@@ -589,12 +599,7 @@ class HereDoc extends StringlikeLiteral, THereDoc {
589599
|
590600
b order by b.getLocation().getStartLine(), b.getLocation().getStartColumn()
591601
) and
592-
result =
593-
rank[i](Generated::HeredocBody b |
594-
f = b.getLocation().getFile()
595-
|
596-
b order by b.getLocation().getStartLine(), b.getLocation().getStartColumn()
597-
)
602+
rankHeredocBody(f, result, i)
598603
)
599604
}
600605

0 commit comments

Comments
 (0)