Skip to content

Commit 5b741e5

Browse files
committed
Consider all siblings in UnevaluatedProperties
This cuts down on the number of errors when `UnevaluatedProperties` fails. Related: - #157 - json-schema-org/json-schema-spec#1172
1 parent b78828f commit 5b741e5

File tree

3 files changed

+303
-2347
lines changed

3 files changed

+303
-2347
lines changed

lib/json_schemer/draft202012/vocab/unevaluated.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def validate(instance, instance_location, keyword_location, context)
6161
evaluated_keys = Set[]
6262

6363
context.adjacent_results.each_value do |adjacent_result|
64-
collect_evaluated_keys(adjacent_result, instance_location, evaluated_keys)
64+
collect_evaluated_keys(adjacent_result, instance_location, evaluated_keys, true)
6565
end
6666

6767
evaluated = instance.reject do |key, _value|
@@ -77,8 +77,8 @@ def validate(instance, instance_location, keyword_location, context)
7777

7878
private
7979

80-
def collect_evaluated_keys(result, instance_location, evaluated_keys)
81-
return unless result.valid && result.instance_location == instance_location
80+
def collect_evaluated_keys(result, instance_location, evaluated_keys, force = false)
81+
return unless force || (result.valid && result.instance_location == instance_location)
8282
case result.source
8383
when Applicator::Properties, Applicator::PatternProperties, Applicator::AdditionalProperties, UnevaluatedProperties
8484
evaluated_keys.merge(result.annotation)

0 commit comments

Comments
 (0)