'createDelegate' operator declaration
This commit is contained in:
committed by
Stanislav Erokhin
parent
558e8aaebb
commit
d3ab0f066e
+32
@@ -0,0 +1,32 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun createDelegate(x: Any?, p: KProperty<*>) {}
|
||||
|
||||
operator fun Any.createDelegate(x: Any?, p: KProperty<*>) {}
|
||||
|
||||
operator fun Any.createDelegate(x: Any?, p: Any) {}
|
||||
|
||||
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun Any.createDelegate(x: Any?, p: Int) {}
|
||||
|
||||
class Host1 {
|
||||
operator fun createDelegate(x: Any?, p: KProperty<*>) {}
|
||||
}
|
||||
|
||||
class Host2 {
|
||||
operator fun Any.createDelegate(x: Any?, p: KProperty<*>) {}
|
||||
}
|
||||
|
||||
class Host3 {
|
||||
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun createDelegate(x: Any?, p: KProperty<*>, foo: Int) {}
|
||||
}
|
||||
|
||||
class Host4 {
|
||||
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun createDelegate(x: Any?, p: KProperty<*>, foo: Int = 0) {}
|
||||
}
|
||||
|
||||
class Host5 {
|
||||
<!INAPPLICABLE_OPERATOR_MODIFIER!>operator<!> fun createDelegate(x: Any?, p: KProperty<*>, vararg foo: Int) {}
|
||||
}
|
||||
|
||||
Vendored
+46
@@ -0,0 +1,46 @@
|
||||
package
|
||||
|
||||
public operator fun createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
|
||||
public operator fun kotlin.Any.createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.Any): kotlin.Unit
|
||||
public operator fun kotlin.Any.createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.Int): kotlin.Unit
|
||||
public operator fun kotlin.Any.createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
|
||||
|
||||
public final class Host1 {
|
||||
public constructor Host1()
|
||||
public final operator fun createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Host2 {
|
||||
public constructor Host2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public final operator fun kotlin.Any.createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Unit
|
||||
}
|
||||
|
||||
public final class Host3 {
|
||||
public constructor Host3()
|
||||
public final operator fun createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ foo: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Host4 {
|
||||
public constructor Host4()
|
||||
public final operator fun createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ foo: kotlin.Int = ...): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Host5 {
|
||||
public constructor Host5()
|
||||
public final operator fun createDelegate(/*0*/ x: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>, /*2*/ vararg foo: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -5524,6 +5524,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("createDelegateOperatorDeclaration.kt")
|
||||
public void testCreateDelegateOperatorDeclaration() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/createDelegateOperatorDeclaration.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("defaultGetter.kt")
|
||||
public void testDefaultGetter() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/defaultGetter.kt");
|
||||
|
||||
@@ -21,6 +21,8 @@ import org.jetbrains.kotlin.name.Name
|
||||
object OperatorNameConventions {
|
||||
@JvmField val GET_VALUE = Name.identifier("getValue")
|
||||
@JvmField val SET_VALUE = Name.identifier("setValue")
|
||||
@JvmField val PROPERTY_DELEGATED = Name.identifier("propertyDelegated")
|
||||
@JvmField val CREATE_DELEGATE = Name.identifier("createDelegate")
|
||||
|
||||
@JvmField val EQUALS = Name.identifier("equals")
|
||||
@JvmField val COMPARE_TO = Name.identifier("compareTo")
|
||||
@@ -62,9 +64,6 @@ object OperatorNameConventions {
|
||||
@JvmField val COROUTINE_HANDLE_EXCEPTION = Name.identifier("handleException")
|
||||
@JvmField val COROUTINE_INTERCEPT_RESUME = Name.identifier("interceptResume")
|
||||
|
||||
|
||||
@JvmField val PROPERTY_DELEGATED = Name.identifier("propertyDelegated")
|
||||
|
||||
// If you add new unary, binary or assignment operators, add it to OperatorConventions as well
|
||||
|
||||
@JvmField
|
||||
|
||||
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.util.OperatorNameConventions.CONTAINS
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions.COROUTINE_HANDLE_EXCEPTION
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions.COROUTINE_HANDLE_RESULT
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions.COROUTINE_INTERCEPT_RESUME
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions.CREATE_DELEGATE
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions.DEC
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions.EQUALS
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions.GET
|
||||
@@ -185,6 +186,7 @@ object OperatorChecks : AbstractModifierChecks() {
|
||||
},
|
||||
Checks(GET_VALUE, MemberOrExtension, NoDefaultAndVarargsCheck, ValueParameterCountCheck.AtLeast(2), IsKPropertyCheck),
|
||||
Checks(SET_VALUE, MemberOrExtension, NoDefaultAndVarargsCheck, ValueParameterCountCheck.AtLeast(3), IsKPropertyCheck),
|
||||
Checks(CREATE_DELEGATE, MemberOrExtension, NoDefaultAndVarargsCheck, ValueParameterCountCheck.Equals(2), IsKPropertyCheck),
|
||||
Checks(INVOKE, MemberOrExtension),
|
||||
Checks(CONTAINS, MemberOrExtension, SingleValueParameter, NoDefaultAndVarargsCheck, ReturnsBoolean),
|
||||
Checks(ITERATOR, MemberOrExtension, NoValueParameters),
|
||||
|
||||
Reference in New Issue
Block a user