Make SelfVariableAccess a sub type of LocalVariableAccess

This commit is contained in:
Tom Hvitved
2021-10-20 11:27:19 +02:00
parent e0b2d88377
commit 94f0f8daf2
4 changed files with 5 additions and 6 deletions

View File

@@ -130,7 +130,7 @@ class VariableReadAccess extends VariableAccess {
/** An access to a local variable. */
class LocalVariableAccess extends VariableAccess instanceof LocalVariableAccessImpl {
final override string getAPrimaryQlClass() { result = "LocalVariableAccess" }
override string getAPrimaryQlClass() { result = "LocalVariableAccess" }
/**
* Holds if this access is a captured variable access. For example in
@@ -190,7 +190,7 @@ class ClassVariableWriteAccess extends ClassVariableAccess, VariableWriteAccess
class ClassVariableReadAccess extends ClassVariableAccess, VariableReadAccess { }
/** An access to the `self` variable */
class SelfVariableAccess extends VariableAccess instanceof SelfVariableAccessImpl {
class SelfVariableAccess extends LocalVariableAccess instanceof SelfVariableAccessImpl {
final override string getAPrimaryQlClass() { result = "SelfVariableAccess" }
}

View File

@@ -698,7 +698,8 @@ class TVariableAccess =
TLocalVariableAccess or TGlobalVariableAccess or TInstanceVariableAccess or
TClassVariableAccess or TSelfVariableAccess;
class TLocalVariableAccess = TLocalVariableAccessReal or TLocalVariableAccessSynth;
class TLocalVariableAccess =
TLocalVariableAccessReal or TLocalVariableAccessSynth or TSelfVariableAccess;
class TGlobalVariableAccess = TGlobalVariableAccessReal or TGlobalVariableAccessSynth;

View File

@@ -618,7 +618,7 @@ private class ClassVariableAccessSynth extends ClassVariableAccessRealImpl,
final override string toString() { result = v.getName() }
}
abstract class SelfVariableAccessImpl extends VariableAccessImpl, TSelfVariableAccess { }
abstract class SelfVariableAccessImpl extends LocalVariableAccessImpl, TSelfVariableAccess { }
private class SelfVariableAccessReal extends SelfVariableAccessImpl, TSelfReal {
private Ruby::Self self;

View File

@@ -956,8 +956,6 @@ module Trees {
final override ControlFlowTree getChildElement(int i) { result = this.getValue() and i = 0 }
}
private class SelfTree extends LeafTree, Self { }
private class SimpleParameterTree extends NonDefaultValueParameterTree, SimpleParameter { }
// Corner case: For duplicated '_' parameters, only the first occurence has a defining