@@ -10,44 +10,7 @@ private import codeql.ruby.dataflow.RemoteFlowSources
1010private import codeql.ruby.ast.internal.Module
1111private import codeql.ruby.ApiGraphs
1212
13- private class GraphqlRelayClassicMutationAccess extends ConstantReadAccess {
14- //GraphQL::Schema::RelayClassicMutation
15- GraphqlRelayClassicMutationAccess ( ) {
16- this =
17- API:: getTopLevelMember ( "GraphQL" )
18- .getMember ( "Schema" )
19- .getMember ( "RelayClassicMutation" )
20- .getAUse ( )
21- .asExpr ( )
22- .getExpr ( )
23- }
24- }
25-
26- private class GraphqlSchemaResolverAccess extends ConstantReadAccess {
27- //GraphQL::Schema::Resolver
28- GraphqlSchemaResolverAccess ( ) {
29- this =
30- API:: getTopLevelMember ( "GraphQL" )
31- .getMember ( "Schema" )
32- .getMember ( "Resolver" )
33- .getAUse ( )
34- .asExpr ( )
35- .getExpr ( )
36- }
37- }
38-
39- private class GraphqlSchemaObjectAccess extends ConstantReadAccess {
40- //GraphQL::Schema::Object
41- GraphqlSchemaObjectAccess ( ) {
42- this =
43- API:: getTopLevelMember ( "GraphQL" )
44- .getMember ( "Schema" )
45- .getMember ( "Object" )
46- .getAUse ( )
47- .asExpr ( )
48- .getExpr ( )
49- }
50- }
13+ private API:: Node graphQlSchema ( ) { result = API:: getTopLevelMember ( "GraphQL" ) .getMember ( "Schema" ) }
5114
5215/**
5316 * A `ClassDeclaration` for a class that extends `GraphQL::Schema::RelayClassicMutation`.
@@ -77,13 +40,8 @@ private class GraphqlSchemaObjectAccess extends ConstantReadAccess {
7740 */
7841private class GraphqlRelayClassicMutationClass extends ClassDeclaration {
7942 GraphqlRelayClassicMutationClass ( ) {
80- // class BaseMutation < GraphQL::Schema::RelayClassicMutation
81- this .getSuperclassExpr ( ) instanceof GraphqlRelayClassicMutationAccess
82- or
83- // class MyMutation < BaseMutation
84- exists ( GraphqlRelayClassicMutationClass other |
85- other .getModule ( ) = resolveConstantReadAccess ( this .getSuperclassExpr ( ) )
86- )
43+ this .getSuperclassExpr ( ) =
44+ graphQlSchema ( ) .getMember ( "RelayClassicMutation" ) .getASubclass * ( ) .getAUse ( ) .asExpr ( ) .getExpr ( )
8745 }
8846}
8947
@@ -112,13 +70,8 @@ private class GraphqlRelayClassicMutationClass extends ClassDeclaration {
11270 */
11371private class GraphqlSchemaResolverClass extends ClassDeclaration {
11472 GraphqlSchemaResolverClass ( ) {
115- // class BaseResolver < GraphQL::Schema::Resolver
116- this .getSuperclassExpr ( ) instanceof GraphqlSchemaResolverAccess
117- or
118- // class MyResolver < BaseResolver
119- exists ( GraphqlSchemaResolverClass other |
120- other .getModule ( ) = resolveConstantReadAccess ( this .getSuperclassExpr ( ) )
121- )
73+ this .getSuperclassExpr ( ) =
74+ graphQlSchema ( ) .getMember ( "Resolver" ) .getASubclass * ( ) .getAUse ( ) .asExpr ( ) .getExpr ( )
12275 }
12376}
12477
@@ -138,13 +91,8 @@ private class GraphqlSchemaResolverClass extends ClassDeclaration {
13891 */
13992class GraphqlSchemaObjectClass extends ClassDeclaration {
14093 GraphqlSchemaObjectClass ( ) {
141- // class BaseObject < GraphQL::Schema::Object
142- this .getSuperclassExpr ( ) instanceof GraphqlSchemaObjectAccess
143- or
144- // class MyObject < BaseObject
145- exists ( GraphqlSchemaObjectClass other |
146- other .getModule ( ) = resolveConstantReadAccess ( this .getSuperclassExpr ( ) )
147- )
94+ this .getSuperclassExpr ( ) =
95+ graphQlSchema ( ) .getMember ( "Object" ) .getASubclass * ( ) .getAUse ( ) .asExpr ( ) .getExpr ( )
14896 }
14997
15098 /** Gets a `GraphqlFieldDefinitionMethodCall` called in this class. */
0 commit comments