@@ -10,44 +10,7 @@ private import codeql.ruby.dataflow.RemoteFlowSources
10
10
private import codeql.ruby.ast.internal.Module
11
11
private import codeql.ruby.ApiGraphs
12
12
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" ) }
51
14
52
15
/**
53
16
* A `ClassDeclaration` for a class that extends `GraphQL::Schema::RelayClassicMutation`.
@@ -77,13 +40,8 @@ private class GraphqlSchemaObjectAccess extends ConstantReadAccess {
77
40
*/
78
41
private class GraphqlRelayClassicMutationClass extends ClassDeclaration {
79
42
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 ( )
87
45
}
88
46
}
89
47
@@ -112,13 +70,8 @@ private class GraphqlRelayClassicMutationClass extends ClassDeclaration {
112
70
*/
113
71
private class GraphqlSchemaResolverClass extends ClassDeclaration {
114
72
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 ( )
122
75
}
123
76
}
124
77
@@ -138,13 +91,8 @@ private class GraphqlSchemaResolverClass extends ClassDeclaration {
138
91
*/
139
92
class GraphqlSchemaObjectClass extends ClassDeclaration {
140
93
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 ( )
148
96
}
149
97
150
98
/** Gets a `GraphqlFieldDefinitionMethodCall` called in this class. */
0 commit comments