Ruby printAst: order by line, synth index in synth parent, column, synth index in real parent

This prevents a bunch of unrelated movements in AstDesugar.ql
This commit is contained in:
Nora Dimitrijević
2025-05-02 12:59:17 -04:00
parent b95092ef1c
commit 83a619a532

View File

@@ -134,6 +134,10 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode {
else result = 0
}
private int getSynthAstNodeIndexForSynthParent() {
if this.parentIsSynthesized() then result = this.getSynthAstNodeIndex() else result = 0
}
override int getOrder() {
this =
rank[result](PrintRegularAstNode p, Location l, File f |
@@ -142,8 +146,9 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode {
|
p
order by
f.getBaseName(), f.getAbsolutePath(), l.getStartLine(), l.getStartColumn(),
p.getSynthAstNodeIndex(), l.getEndLine(), l.getEndColumn()
f.getBaseName(), f.getAbsolutePath(), l.getStartLine(),
p.getSynthAstNodeIndexForSynthParent(), l.getStartColumn(), p.getSynthAstNodeIndex(),
l.getEndLine(), l.getEndColumn()
)
}