@@ -37,6 +37,16 @@ auto handle_impossible(const sourcemeta::core::JSON &,
3737 .symbol = symbol (frame, location)}};
3838}
3939
40+ auto handle_any (const sourcemeta::core::JSON &,
41+ const sourcemeta::core::SchemaFrame &frame,
42+ const sourcemeta::core::SchemaFrame::Location &location,
43+ const sourcemeta::core::Vocabularies &,
44+ const sourcemeta::core::SchemaResolver &,
45+ const sourcemeta::core::JSON &) -> IRAny {
46+ return IRAny{{.pointer = sourcemeta::core::to_pointer (location.pointer ),
47+ .symbol = symbol (frame, location)}};
48+ }
49+
4050auto handle_string (const sourcemeta::core::JSON &schema,
4151 const sourcemeta::core::SchemaFrame &frame,
4252 const sourcemeta::core::SchemaFrame::Location &location,
@@ -450,9 +460,13 @@ auto default_compiler(const sourcemeta::core::JSON &schema,
450460 // following shapes
451461
452462 if (subschema.is_boolean ()) {
453- assert (!subschema.to_boolean ());
454- return handle_impossible (schema, frame, location, vocabularies, resolver,
455- subschema);
463+ if (subschema.to_boolean ()) {
464+ return handle_any (schema, frame, location, vocabularies, resolver,
465+ subschema);
466+ } else {
467+ return handle_impossible (schema, frame, location, vocabularies, resolver,
468+ subschema);
469+ }
456470 } else if (subschema.defines (" type" )) {
457471 const auto &type_value{subschema.at (" type" )};
458472 if (!type_value.is_string ()) {
0 commit comments