@@ -308,7 +308,8 @@ private module Cached {
308308 access ( this , _) or
309309 this instanceof Ruby:: GlobalVariable or
310310 this instanceof Ruby:: InstanceVariable or
311- this instanceof Ruby:: ClassVariable
311+ this instanceof Ruby:: ClassVariable or
312+ this instanceof Ruby:: Self
312313 }
313314 }
314315
@@ -619,15 +620,23 @@ private class ClassVariableAccessSynth extends ClassVariableAccessRealImpl,
619620
620621abstract class SelfVariableAccessImpl extends VariableAccessImpl , TSelfVariableAccess { }
621622
622- private class SelfVariableAccessReal extends SelfVariableAccessImpl , TSelfVariableAccessReal {
623+ private class SelfVariableAccessReal extends SelfVariableAccessImpl , TSelfReal {
623624 private Ruby:: Self self ;
624625 private SelfVariable var ;
625626
626- SelfVariableAccessReal ( ) {
627- exists ( MethodBase:: Range scope |
628- var = TSelfVariable ( scope ) and this = TSelfVariableAccessReal ( self , scope )
629- )
630- }
627+ SelfVariableAccessReal ( ) { this = TSelfReal ( self ) and var = TSelfVariable ( scopeOf ( self ) ) }
631628
632629 final override SelfVariable getVariableImpl ( ) { result = var }
630+
631+ final override string toString ( ) { result = var .toString ( ) }
632+ }
633+
634+ private class SelfVariableAccessSynth extends SelfVariableAccessImpl , TSelfSynth {
635+ private SelfVariable v ;
636+
637+ SelfVariableAccessSynth ( ) { this = TSelfSynth ( _, _, v ) }
638+
639+ final override LocalVariable getVariableImpl ( ) { result = v }
640+
641+ final override string toString ( ) { result = v .getName ( ) }
633642}
0 commit comments