From db5979f1ac66e80c8702cb1ee4d3bb56706649f4 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 3 Nov 2023 16:26:40 +0000 Subject: [PATCH] Autoformat upgrade/downgrade scripts --- .../exprs.ql | 40 +++++++++++++------ .../exprs.ql | 40 +++++++++++++------ 2 files changed, 55 insertions(+), 25 deletions(-) diff --git a/java/downgrades/dee651b58d1e5455ca2d07eca37775a21d772fcc/exprs.ql b/java/downgrades/dee651b58d1e5455ca2d07eca37775a21d772fcc/exprs.ql index 6063f7dca75..aba4fd5a39d 100644 --- a/java/downgrades/dee651b58d1e5455ca2d07eca37775a21d772fcc/exprs.ql +++ b/java/downgrades/dee651b58d1e5455ca2d07eca37775a21d772fcc/exprs.ql @@ -1,27 +1,37 @@ -class Expr extends @expr { string toString() { result = "expr" } } +class Expr extends @expr { + string toString() { result = "expr" } +} + class LocalVariableDeclExpr extends @localvariabledeclexpr, Expr { } + class InstanceOfExpr extends @instanceofexpr, Expr { } -class SimplePatternInstanceOfExpr extends InstanceOfExpr { SimplePatternInstanceOfExpr() { getNthChild(this, 2) instanceof LocalVariableDeclExpr } } -class Type extends @type { string toString() { result = "type" } } -class ExprParent extends @exprparent { string toString() { result = "exprparent" } } + +class SimplePatternInstanceOfExpr extends InstanceOfExpr { + SimplePatternInstanceOfExpr() { getNthChild(this, 2) instanceof LocalVariableDeclExpr } +} + +class Type extends @type { + string toString() { result = "type" } +} + +class ExprParent extends @exprparent { + string toString() { result = "exprparent" } +} Expr getNthChild(ExprParent parent, int i) { exprs(result, _, _, parent, i) } // Where an InstanceOfExpr has a 2nd child that is a LocalVariableDeclExpr, that expression should becomes its 0th child and the existing 0th child should become its initialiser. // Any RecordPatternExpr should be replaced with an error expression, as it can't be represented in the downgraded dbscheme. - // This reverts a reorganisation of the representation of "o instanceof String s", which used to be InstanceOfExpr -0-> LocalVariableDeclExpr --init-> o // \-name-> s // It is now InstanceOfExpr --0-> o // \-2-> LocalVariableDeclExpr -name-> s // // Other children are unaffected. - - predicate hasNewParent(Expr e, ExprParent newParent, int newIndex) { - exists(SimplePatternInstanceOfExpr oldParent, int oldIndex | - e = getNthChild(oldParent, oldIndex) | + e = getNthChild(oldParent, oldIndex) + | oldIndex = 0 and newParent = getNthChild(oldParent, 2) and newIndex = 0 or oldIndex = 1 and newParent = oldParent and newIndex = oldIndex @@ -31,11 +41,15 @@ predicate hasNewParent(Expr e, ExprParent newParent, int newIndex) { or not exists(SimplePatternInstanceOfExpr oldParent | e = getNthChild(oldParent, _)) and exprs(e, _, _, newParent, newIndex) - } from Expr e, int oldKind, int newKind, Type typeid, ExprParent parent, int index -where exprs(e, oldKind, typeid, _, _) and -hasNewParent(e, parent, index) and -(if oldKind = 89 /* record pattern */ then newKind = 74 /* error expression */ else oldKind = newKind) +where + exprs(e, oldKind, typeid, _, _) and + hasNewParent(e, parent, index) and + ( + if oldKind = 89 + then /* record pattern */ newKind = 74 + else /* error expression */ oldKind = newKind + ) select e, newKind, typeid, parent, index diff --git a/java/ql/lib/upgrades/ecfcf050952e54b1155fc89525db84af6ad34aaf/exprs.ql b/java/ql/lib/upgrades/ecfcf050952e54b1155fc89525db84af6ad34aaf/exprs.ql index d59acad79fa..31493cb5723 100644 --- a/java/ql/lib/upgrades/ecfcf050952e54b1155fc89525db84af6ad34aaf/exprs.ql +++ b/java/ql/lib/upgrades/ecfcf050952e54b1155fc89525db84af6ad34aaf/exprs.ql @@ -1,8 +1,18 @@ -class Expr extends @expr { string toString() { result = "expr" } } +class Expr extends @expr { + string toString() { result = "expr" } +} + class LocalVariableDeclExpr extends @localvariabledeclexpr, Expr { } + class InstanceOfExpr extends @instanceofexpr, Expr { } -class Type extends @type { string toString() { result = "type" } } -class ExprParent extends @exprparent { string toString() { result = "exprparent" } } + +class Type extends @type { + string toString() { result = "type" } +} + +class ExprParent extends @exprparent { + string toString() { result = "exprparent" } +} // Initialisers of local variable declarations that occur as the 0th child of an instanceof expression should be reparented to be the 0th child of the instanceof itself, // while the LocalVariableDeclExpr, now without an initialiser, should become its 2nd child. @@ -12,20 +22,26 @@ class ExprParent extends @exprparent { string toString() { result = "exprparent" // \-2-> LocalVariableDeclExpr -name-> s // // Other children are unaffected. - ExprParent getParent(Expr e) { exprs(e, _, _, result, _) } predicate hasNewParent(Expr e, ExprParent newParent, int newIndex) { - if (getParent(e) instanceof LocalVariableDeclExpr and getParent(getParent(e)) instanceof InstanceOfExpr) - then (newParent = getParent(getParent(e)) and newIndex = 0) // Initialiser moves to hang directly off the instanceof expression - else ( - if (e instanceof LocalVariableDeclExpr and getParent(e) instanceof InstanceOfExpr) - then (newParent = getParent(e) and newIndex = 2) // Variable declaration moves to be the instanceof expression's 2nd child - else exprs(e, _, _, newParent, newIndex) // Other expressions unchanged + if + getParent(e) instanceof LocalVariableDeclExpr and + getParent(getParent(e)) instanceof InstanceOfExpr + then ( + newParent = getParent(getParent(e)) and newIndex = 0 + ) else ( + // Initialiser moves to hang directly off the instanceof expression + if e instanceof LocalVariableDeclExpr and getParent(e) instanceof InstanceOfExpr + then newParent = getParent(e) and newIndex = 2 + else + // Variable declaration moves to be the instanceof expression's 2nd child + exprs(e, _, _, newParent, newIndex) // Other expressions unchanged ) } from Expr e, int kind, Type typeid, ExprParent parent, int index -where exprs(e, kind, typeid, _, _) and -hasNewParent(e, parent, index) +where + exprs(e, kind, typeid, _, _) and + hasNewParent(e, parent, index) select e, kind, typeid, parent, index