remove recvCls field from ActiveRecordModelClassMethodCall

This commit is contained in:
Alex Ford
2021-06-17 14:42:42 +01:00
parent 214532516b
commit 7439ab5635

View File

@@ -44,22 +44,15 @@ class ActiveRecordModelClass extends ClassDeclaration {
/** A class method call whose receiver is an `ActiveRecordModelClass`. */
class ActiveRecordModelClassMethodCall extends MethodCall {
// The model class that receives this call, if any
private ActiveRecordModelClass recvCls;
ActiveRecordModelClassMethodCall() {
// e.g. Foo.where(...)
recvCls.getModule() = resolveScopeExpr(this.getReceiver())
exists(ActiveRecordModelClass recvCls |
recvCls.getModule() = resolveScopeExpr(this.getReceiver())
)
or
// e.g. Foo.joins(:bars).where(...)
this.getReceiver() instanceof ActiveRecordModelClassMethodCall
}
// TODO: do we need this?
ActiveRecordModelClass getAnActiveRecordModelClass() {
result = recvCls or
result = this.getReceiver().(ActiveRecordModelClassMethodCall).getAnActiveRecordModelClass()
}
}
private predicate methodWithSqlFragmentArg(string methodName, int argIndex) {