From 44335901c5be3e84567511720f89ae6ee62e29dd Mon Sep 17 00:00:00 2001 From: Sergey Mashkov Date: Fri, 14 Oct 2016 16:10:49 +0300 Subject: [PATCH] IDL2K: rename trait to interface, render NoInterfaceObject as native interface --- libraries/tools/idl2k/src/main/kotlin/gen.kt | 7 ++++--- libraries/tools/idl2k/src/main/kotlin/model.kt | 2 +- libraries/tools/idl2k/src/main/kotlin/render.kt | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libraries/tools/idl2k/src/main/kotlin/gen.kt b/libraries/tools/idl2k/src/main/kotlin/gen.kt index 7516f779421..bf3f91e12eb 100644 --- a/libraries/tools/idl2k/src/main/kotlin/gen.kt +++ b/libraries/tools/idl2k/src/main/kotlin/gen.kt @@ -80,10 +80,11 @@ fun generateAttribute(putNoImpl: Boolean, repository: Repository, attribute: Att private fun InterfaceDefinition.superTypes(repository: Repository) = superTypes.map { repository.interfaces[it] }.filterNotNull() private fun resolveDefinitionKind(repository: Repository, iface: InterfaceDefinition, constructors: List = iface.findConstructors()): GenerateDefinitionKind = when { + iface.extendedAttributes.any { it.call == "NoInterfaceObject" } -> GenerateDefinitionKind.INTERFACE constructors.isNotEmpty() || iface.superTypes(repository).any { resolveDefinitionKind(repository, it) == GenerateDefinitionKind.CLASS } -> { GenerateDefinitionKind.CLASS } - iface.callback -> GenerateDefinitionKind.TRAIT + iface.callback -> GenerateDefinitionKind.INTERFACE else -> GenerateDefinitionKind.ABSTRACT_CLASS } @@ -169,7 +170,7 @@ fun superOrPrimaryConstructorCall(constructorAsFunction: GenerateFunction, super fun mapUnionType(it: UnionType) = GenerateTraitOrClass( name = it.name, namespace = it.namespace, - kind = GenerateDefinitionKind.TRAIT, + kind = GenerateDefinitionKind.INTERFACE, superTypes = emptyList(), memberAttributes = emptyList(), memberFunctions = emptyList(), @@ -182,7 +183,7 @@ fun mapUnionType(it: UnionType) = GenerateTraitOrClass( fun generateUnionTypeTraits(allUnionTypes: Sequence): Sequence = allUnionTypes.map(::mapUnionType) fun mapDefinitions(repository: Repository, definitions: Iterable) = - definitions.filter { "NoInterfaceObject" !in it.extendedAttributes.map { it.call } }.map { generateTrait(repository, it) } + definitions.map { generateTrait(repository, it) } fun generateUnions(ifaces: List, typedefs: Iterable): GenerateUnionTypes { val declaredTypes = ifaces.associateBy { it.name } diff --git a/libraries/tools/idl2k/src/main/kotlin/model.kt b/libraries/tools/idl2k/src/main/kotlin/model.kt index e4310c5e6f2..170ea71c081 100644 --- a/libraries/tools/idl2k/src/main/kotlin/model.kt +++ b/libraries/tools/idl2k/src/main/kotlin/model.kt @@ -58,7 +58,7 @@ enum class NativeGetterOrSetter { } enum class GenerateDefinitionKind { - TRAIT, + INTERFACE, CLASS, ABSTRACT_CLASS } diff --git a/libraries/tools/idl2k/src/main/kotlin/render.kt b/libraries/tools/idl2k/src/main/kotlin/render.kt index 2ec97720c11..f3cd1cd5b6f 100644 --- a/libraries/tools/idl2k/src/main/kotlin/render.kt +++ b/libraries/tools/idl2k/src/main/kotlin/render.kt @@ -119,7 +119,7 @@ fun Appendable.render(allTypes: Map, typeNamesToUn when (iface.kind) { GenerateDefinitionKind.CLASS -> append("open class ") GenerateDefinitionKind.ABSTRACT_CLASS -> append("abstract class ") - GenerateDefinitionKind.TRAIT -> append("interface ") + GenerateDefinitionKind.INTERFACE -> append("interface ") } val allSuperTypes = iface.allSuperTypes(allTypes) @@ -177,7 +177,7 @@ fun Appendable.render(allTypes: Map, typeNamesToUn renderAttributeDeclarationAsProperty(arg, modality = modality, commented = arg.isCommented(iface.name), - omitDefaults = iface.kind == GenerateDefinitionKind.TRAIT, + omitDefaults = iface.kind == GenerateDefinitionKind.INTERFACE, level = 1 ) }