@@ -47,20 +47,21 @@ def initialize(name: nil, context:, schema:)
47
47
end . compare_by_identity
48
48
} . compare_by_identity
49
49
50
- @cached_visible_arguments = Hash . new do |h , arg |
51
- h [ arg ] = if @cached_visible [ arg ] && ( arg_type = arg . type . unwrap ) && @cached_visible [ arg_type ]
52
- owner = arg . owner
53
- case owner
54
- when GraphQL ::Schema ::Field
55
- @cached_visible_fields [ owner . owner ] [ owner ]
56
- when Class
57
- @cached_visible [ owner ]
50
+ @cached_visible_arguments = Hash . new do |h , owner |
51
+ h [ owner ] = Hash . new do |h2 , arg |
52
+ h2 [ arg ] = if @cached_visible [ arg ] && ( arg_type = arg . type . unwrap ) && @cached_visible [ arg_type ]
53
+ case owner
54
+ when GraphQL ::Schema ::Field
55
+ @cached_visible_fields [ owner . owner ] [ owner ]
56
+ when Class
57
+ @cached_visible [ owner ]
58
+ else
59
+ raise "Unexpected argument owner for `#{ arg . path } `: #{ owner . inspect } "
60
+ end
58
61
else
59
- raise "Unexpected argument owner for ` #{ arg . path } `: #{ owner . inspect } "
62
+ false
60
63
end
61
- else
62
- false
63
- end
64
+ end . compare_by_identity
64
65
end . compare_by_identity
65
66
66
67
@cached_parent_fields = Hash . new do |h , type |
@@ -90,7 +91,7 @@ def initialize(name: nil, context:, schema:)
90
91
end . compare_by_identity
91
92
92
93
@cached_arguments = Hash . new do |h , owner |
93
- h [ owner ] = non_duplicate_items ( owner . all_argument_definitions , @cached_visible_arguments )
94
+ h [ owner ] = non_duplicate_items ( owner . all_argument_definitions , @cached_visible_arguments [ owner ] )
94
95
end . compare_by_identity
95
96
96
97
@loadable_possible_types = Hash . new { |h , union_type | h [ union_type ] = union_type . possible_types } . compare_by_identity
@@ -188,7 +189,7 @@ def argument(owner, arg_name)
188
189
if arg . is_a? ( Array )
189
190
visible_arg = nil
190
191
arg . each do |arg_defn |
191
- if @cached_visible_arguments [ arg_defn ]
192
+ if @cached_visible_arguments [ owner ] [ arg_defn ]
192
193
if visible_arg . nil?
193
194
visible_arg = arg_defn
194
195
else
@@ -198,7 +199,7 @@ def argument(owner, arg_name)
198
199
end
199
200
visible_arg
200
201
else
201
- if arg && @cached_visible_arguments [ arg ]
202
+ if arg && @cached_visible_arguments [ owner ] [ arg ]
202
203
arg
203
204
else
204
205
nil
@@ -323,7 +324,7 @@ def referenced?(type_defn)
323
324
@schema . visibility . all_references [ type_defn ] . any? do |ref |
324
325
case ref
325
326
when GraphQL ::Schema ::Argument
326
- @cached_visible_arguments [ ref ]
327
+ @cached_visible_arguments [ ref . owner ] [ ref ]
327
328
when GraphQL ::Schema ::Field
328
329
@cached_visible_fields [ ref . owner ] [ ref ]
329
330
when Module
0 commit comments