[FIR JS] Implement FirJsExternalChecker

The JsAllowValueClassesInExternals feature is enabled explicitly,
because otherwise it's enabled
implicitly depending on the backend. See:
org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt:90

A property may have a fake source return kind, while its accessor
has a real source kind. In this case we can't "just copy"
the property return type down to the accessor.
This commit is contained in:
Nikolay Lunyak
2023-01-04 16:42:00 +02:00
committed by Space Team
parent 7b8f5f9980
commit a20e29e8b7
54 changed files with 758 additions and 456 deletions
@@ -9,10 +9,10 @@ class Delegate {
operator fun setValue(thisRef: Any?, property: Any, value: String) {}
}
external class A : I by O {
val prop by Delegate()
external class A : <!EXTERNAL_DELEGATION!>I<!> by O {
val prop by <!EXTERNAL_DELEGATION!>Delegate()<!>
var mutableProp by Delegate()
var mutableProp by <!EXTERNAL_DELEGATION!>Delegate()<!>
}
external val topLevelProp by Delegate()
external val topLevelProp by <!EXTERNAL_DELEGATION!>Delegate()<!>