Set isOperator property for dynamic calls by convention
This commit is contained in:
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.DescriptorFactory
|
||||
import org.jetbrains.kotlin.resolve.calls.callResolverUtil.isConventionCall
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.TransientReceiver
|
||||
@@ -134,6 +135,7 @@ class DynamicCallableDescriptors(private val storageManager: StorageManager, bui
|
||||
Visibilities.PUBLIC
|
||||
)
|
||||
functionDescriptor.setHasSynthesizedParameterNames(true)
|
||||
functionDescriptor.isOperator = isConventionCall(call)
|
||||
return functionDescriptor
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final var foo: dynamic
|
||||
public final fun <get-foo>(): dynamic
|
||||
public final fun <set-foo>(/*0*/ <set-?>: dynamic): kotlin.Unit
|
||||
|
||||
+47
-47
@@ -1,54 +1,54 @@
|
||||
public final fun unaryPlus(): dynamic
|
||||
public final fun unaryMinus(): dynamic
|
||||
public final fun not(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun minus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun times(/*0*/ p0: dynamic): dynamic
|
||||
public final fun div(/*0*/ p0: dynamic): dynamic
|
||||
public final fun rem(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun unaryPlus(): dynamic
|
||||
public final operator fun unaryMinus(): dynamic
|
||||
public final operator fun not(): dynamic
|
||||
public final operator fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun minus(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun times(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun div(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun rem(/*0*/ p0: dynamic): dynamic
|
||||
public final fun and(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun inc(): dynamic
|
||||
public final fun inc(): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun dec(): dynamic
|
||||
public final fun dec(): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun inc(): dynamic
|
||||
public final operator fun inc(): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun dec(): dynamic
|
||||
public final operator fun dec(): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun invoke(): dynamic
|
||||
public final fun invoke(/*0*/ p0: dynamic): dynamic
|
||||
public final fun invoke(/*0*/ name: dynamic): dynamic
|
||||
public final fun invoke(/*0*/ p0: () -> dynamic): dynamic
|
||||
public final fun invoke(/*0*/ p0: dynamic): dynamic
|
||||
public final fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun compareTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun foo(): dynamic
|
||||
public final fun inc(): dynamic
|
||||
public final fun inc(): dynamic
|
||||
public final fun dec(): dynamic
|
||||
public final fun dec(): dynamic
|
||||
public final fun plusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun minusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun timesAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun divAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun remAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun plusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun minusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun timesAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun divAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun remAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun plusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun minusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun timesAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun divAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun remAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun inc(): dynamic
|
||||
public final operator fun inc(): dynamic
|
||||
public final operator fun dec(): dynamic
|
||||
public final operator fun dec(): dynamic
|
||||
public final operator fun plusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun minusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun timesAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun divAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun remAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun plusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun minusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun timesAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun divAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun remAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun plusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun minusAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun timesAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun divAssign(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun remAssign(/*0*/ p0: dynamic): dynamic
|
||||
|
||||
+9
-9
@@ -1,9 +1,9 @@
|
||||
public final fun component1(): dynamic
|
||||
public final fun component2(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun component1(): dynamic
|
||||
public final fun component2(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun component1(): dynamic
|
||||
public final fun component2(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun component1(): dynamic
|
||||
public final operator fun component2(): dynamic
|
||||
public final operator fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun component1(): dynamic
|
||||
public final operator fun component2(): dynamic
|
||||
public final operator fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun component1(): dynamic
|
||||
public final operator fun component2(): dynamic
|
||||
public final operator fun plus(/*0*/ p0: dynamic): dynamic
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
public final fun contains(/*0*/ p0: dynamic): dynamic
|
||||
public final fun contains(/*0*/ p0: dynamic): dynamic
|
||||
public final fun contains(/*0*/ p0: dynamic): dynamic
|
||||
public final fun contains(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun contains(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun contains(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun contains(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun contains(/*0*/ p0: dynamic): dynamic
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
|
||||
public final fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
|
||||
public final fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic, /*2*/ p2: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
|
||||
public final operator fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic): dynamic
|
||||
public final operator fun set(/*0*/ p0: dynamic, /*1*/ p1: dynamic, /*2*/ p2: dynamic): dynamic
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
public final fun rangeTo(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun rangeTo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun rangeTo(/*0*/ p0: dynamic): dynamic
|
||||
|
||||
compiler/testData/diagnostics/testsWithJsStdLib/dynamicTypes/staticCallsInDynamicContext.dynamic.txt
Vendored
+3
-3
@@ -10,7 +10,7 @@ public final var extVal: dynamic
|
||||
public final fun <get-extVal>(): dynamic
|
||||
public final fun <set-extVal>(/*0*/ <set-?>: dynamic): kotlin.Unit
|
||||
public final fun extExtVal(): dynamic
|
||||
public final fun invoke(): dynamic
|
||||
public final fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final fun invoke(): dynamic
|
||||
public final operator fun invoke(): dynamic
|
||||
public final operator fun plus(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun invoke(): dynamic
|
||||
public final fun foo(): dynamic
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
public final fun foo(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
public final operator fun get(/*0*/ p0: dynamic): dynamic
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
public final operator fun unaryPlus(): dynamic
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
|
||||
fun String.toDouble(): Double = (+(this.asDynamic())).unsafeCast<Double>().also {
|
||||
if (it.isNaN() && !this.isNaN() || it == 0.0 && this.isBlank())
|
||||
TODO()
|
||||
}
|
||||
|
||||
fun String.isNaN(): Boolean = when (this.toLowerCase()) {
|
||||
"nan", "+nan", "-nan" -> true
|
||||
else -> false
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun kotlin.String.isNaN(): kotlin.Boolean
|
||||
public fun kotlin.String.toDouble(): kotlin.Double
|
||||
+5
@@ -53,6 +53,11 @@ public class DiagnosticsTestWithJsStdLibGenerated extends AbstractDiagnosticsTes
|
||||
runTest("compiler/testData/diagnostics/testsWithJsStdLib/runtimeAnnotations.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("unsafeCastFunctionOnDynamicType.kt")
|
||||
public void testUnsafeCastFunctionOnDynamicType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/testsWithJsStdLib/unsafeCastFunctionOnDynamicType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("wrongMultipleInheritance.kt")
|
||||
public void testWrongMultipleInheritance() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/testsWithJsStdLib/wrongMultipleInheritance.kt");
|
||||
|
||||
Reference in New Issue
Block a user