Kotlin / dukat

Converter of <any kind of declarations> to Kotlin external declarations
552 stars 44 forks source link

Missing override with dynamic return type on overridden member function #393

Open KotlinIsland opened 3 years ago

KotlinIsland commented 3 years ago

Here Baz overrides bar and specifies a dynamic return type, but no override is added. TS: test.d.ts:

interface Bar {
    bar(): void;
}

interface Baz extends Bar {
    bar(): any;
}

Generated:

test.kt

@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS")

import kotlin.js.*
import kotlin.js.Json
import org.khronos.webgl.*
import org.w3c.dom.*
import org.w3c.dom.events.*
import org.w3c.dom.parsing.*
import org.w3c.dom.svg.*
import org.w3c.dom.url.*
import org.w3c.fetch.*
import org.w3c.files.*
import org.w3c.notifications.*
import org.w3c.performance.*
import org.w3c.workers.*
import org.w3c.xhr.*

external interface Bar {
    fun bar()
}

external interface Baz : Bar {
    fun bar(): Any
}

Expected

external interface Baz : Bar {
    override fun bar(): Any
}