diff --git a/libraries/tools/idl2k/src/main/kotlin/render.kt b/libraries/tools/idl2k/src/main/kotlin/render.kt index 7b33c943e73..c17f46df90c 100644 --- a/libraries/tools/idl2k/src/main/kotlin/render.kt +++ b/libraries/tools/idl2k/src/main/kotlin/render.kt @@ -194,7 +194,11 @@ fun Appendable.render(allTypes: Map, enums: List st.kind == GenerateDefinitionKind.INTERFACE && st.memberAttributes.any { sa -> sa.signature == it.signature } }) + } .map { it.dynamicIfUnknownType(allTypesAndEnums) } .groupBy { it.name } .mapValues { it.value.filter { "${iface.name}.${it.name}" !in commentOutDeclarations && "${iface.name}.${it.name}: ${it.type.render()}" !in commentOutDeclarations } } @@ -207,6 +211,10 @@ fun Appendable.render(allTypes: Map, enums: List MemberModality.FINAL } + if (iface.name == "XMLDocument" && attribute.name == "onabort") { + println() + } + if (attribute.name in superAttributesByName && attribute.signature !in superSignatures) { System.err.println("Property ${iface.name}.${attribute.name} has different type in super type(s) so will not be generated: ") for ((superTypeName, attributes) in allSuperTypes.map { it.name to it.memberAttributes.filter { it.name == attribute.name }.distinct() }) { @@ -214,6 +222,12 @@ fun Appendable.render(allTypes: Map, enums: List st.kind == GenerateDefinitionKind.INTERFACE && st.memberAttributes.any { it.signature == attribute.signature } } + || allSuperTypes.any { st -> st.kind != GenerateDefinitionKind.INTERFACE && st.memberAttributes.any { it.signature == attribute.signature } })) { + // then don't generate } else { renderAttributeDeclarationAsProperty(attribute, modality = modality,