9a5cd19 introduced the behavior that properties without type defined are implied of type object. I don't think this statement is true. The absence of type means it is any type (object, null, string, etc).
Example
paths:
/foo:
post:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Foo'
required: true
responses:
200:
description: ok
components:
schemas:
Foo:
type: object
allOf:
- $ref: "#/components/schemas/Goo"
Goo:
type: object
properties:
goo:
title: "Goo"
When resolving the schema, the type of property goo cannot be set to type object.
I removed the implication and it didn't break any other tests.
diff --git a/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/ResolverFully.java b/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/ResolverFully.java
--- a/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/ResolverFully.java (revision 0ab2e8a7774b147e7b8c2c75b929089677d1b246)
+++ b/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/ResolverFully.java (date 1722333547892)
@@ -469,13 +469,13 @@
Schema property = updated.get(key);
if (property.getProperties() != model.getProperties()) {
- if (!hasSchemaType(property)) {
+ /*if (!hasSchemaType(property)) {
if (SpecVersion.V30.equals(property.getSpecVersion())) {
property.setType("object");
} else {
property.addType("object");
}
- }
+ }*/
model.addProperties(key, property);
} else {
LOGGER.debug("not adding recursive properties, using generic object");
9a5cd19 introduced the behavior that properties without type defined are implied of type object. I don't think this statement is true. The absence of type means it is any type (object, null, string, etc).
Example
When resolving the schema, the type of property
goocannot be set to type object.I removed the implication and it didn't break any other tests.