Disallow PropertyMetadataImpl in conventions for delegated properties
This commit is contained in:
@@ -128,7 +128,8 @@ public class DelegatedPropertyResolver {
|
|||||||
return psiFactory.createExpression(builtIns.getPropertyMetadataImpl().getName().asString() +
|
return psiFactory.createExpression(builtIns.getPropertyMetadataImpl().getName().asString() +
|
||||||
"(\"" +
|
"(\"" +
|
||||||
propertyDescriptor.getName().asString() +
|
propertyDescriptor.getName().asString() +
|
||||||
"\")");
|
"\"): " +
|
||||||
|
builtIns.getPropertyMetadata().getName().asString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resolveDelegatedPropertyPDMethod(
|
public void resolveDelegatedPropertyPDMethod(
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
val a: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>A()<!>
|
||||||
|
|
||||||
|
class A {
|
||||||
|
fun get(t: Any?, p: PropertyMetadataImpl): Int = 1
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
internal val a: kotlin.Int
|
||||||
|
|
||||||
|
internal final class A {
|
||||||
|
public constructor A()
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
internal final fun get(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.PropertyMetadataImpl): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
@@ -3141,6 +3141,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("disallowImplInTypeParameter.kt")
|
||||||
|
public void testDisallowImplInTypeParameter() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/disallowImplInTypeParameter.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("genericGetter.kt")
|
@TestMetadata("genericGetter.kt")
|
||||||
public void testGenericGetter() throws Exception {
|
public void testGenericGetter() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/genericGetter.kt");
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/genericGetter.kt");
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ fun format(event: String, property: String, value: Int): String
|
|||||||
object LoggerDelegate {
|
object LoggerDelegate {
|
||||||
var log = ""
|
var log = ""
|
||||||
|
|
||||||
fun get(state: State, desc: PropertyMetadataImpl): Int {
|
fun get(state: State, desc: PropertyMetadata): Int {
|
||||||
log += format("get", desc.name, state.realValue)
|
log += format("get", desc.name, state.realValue)
|
||||||
return state.realValue
|
return state.realValue
|
||||||
}
|
}
|
||||||
|
|
||||||
fun set(state: State, desc: PropertyMetadataImpl, value: Int) {
|
fun set(state: State, desc: PropertyMetadata, value: Int) {
|
||||||
log += format("set", desc.name, value)
|
log += format("set", desc.name, value)
|
||||||
state.realValue = value
|
state.realValue = value
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ trait Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class Delegate(val multiplier: Int) {
|
class Delegate(val multiplier: Int) {
|
||||||
fun get(state: State, desc: PropertyMetadataImpl): Int = multiplier * state.value
|
fun get(state: State, desc: PropertyMetadata): Int = multiplier * state.value
|
||||||
|
|
||||||
fun set(state: State, desc: PropertyMetadataImpl, value: Int) {
|
fun set(state: State, desc: PropertyMetadata, value: Int) {
|
||||||
state.value = value / multiplier
|
state.value = value / multiplier
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user