Rename IfOrElsifExpr to IfExpr; remove child classes

This commit is contained in:
Nick Rolfe
2021-01-08 11:53:15 +00:00
parent 15785b4535
commit 6465c90a16
5 changed files with 39 additions and 63 deletions

View File

@@ -40,10 +40,23 @@ class ConditionalExpr extends Expr {
/**
* An `if` or `elsif` expression.
* ```rb
* if x
* a += 1
* elsif y
* a += 2
* end
* ```
*/
class IfOrElsifExpr extends ConditionalExpr {
override IfOrElsifExpr::Range range;
class IfExpr extends ConditionalExpr {
override IfExpr::Range range;
final override string getAPrimaryQlClass() { result = "IfExpr" }
final override string toString() { if isElsif() then result = "elsif ..." else result = "if ..." }
/** Holds if this is an `elsif` expression. */
final predicate isElsif() { this instanceof @elsif }
/** Gets the 'then' branch of this `if`/`elsif` expression. */
final ExprSequence getThen() { result = range.getThen() }
@@ -82,40 +95,6 @@ class IfOrElsifExpr extends ConditionalExpr {
final Expr getElse() { result = range.getElse() }
}
/**
* An `if` expression.
* ```rb
* if x
* y += 1
* end
* ```
*/
class IfExpr extends IfOrElsifExpr, @if {
final override IfExpr::Range range;
final override string getAPrimaryQlClass() { result = "IfExpr" }
final override string toString() { result = "if ..." }
}
/**
* An `elsif` expression.
* ```rb
* if x
* a += 1
* elsif y
* a += 2
* end
* ```
*/
class ElsifExpr extends IfOrElsifExpr, @elsif {
final override ElsifExpr::Range range;
final override string getAPrimaryQlClass() { result = "ElsifExpr" }
final override string toString() { result = "elsif ..." }
}
/**
* An `unless` expression.
* ```rb

View File

@@ -15,16 +15,14 @@ module ConditionalExpr {
}
}
module IfOrElsifExpr {
module IfExpr {
abstract class Range extends ConditionalExpr::Range {
abstract Expr getThen();
abstract ExprSequence getThen();
abstract Expr getElse();
}
}
module IfExpr {
class Range extends IfOrElsifExpr::Range, @if {
private class IfRange extends IfExpr::Range, @if {
final override Generated::If generated;
final override Expr getCondition() { result = generated.getCondition() }
@@ -39,10 +37,8 @@ module IfExpr {
cond = false and result = getElse()
}
}
}
module ElsifExpr {
class Range extends IfOrElsifExpr::Range, @elsif {
private class ElsifRange extends IfExpr::Range, @elsif {
final override Generated::Elsif generated;
final override Expr getCondition() { result = generated.getCondition() }