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() +
|
||||
"(\"" +
|
||||
propertyDescriptor.getName().asString() +
|
||||
"\")");
|
||||
"\"): " +
|
||||
builtIns.getPropertyMetadata().getName().asString());
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@TestMetadata("disallowImplInTypeParameter.kt")
|
||||
public void testDisallowImplInTypeParameter() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/delegatedProperty/disallowImplInTypeParameter.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("genericGetter.kt")
|
||||
public void testGenericGetter() throws Exception {
|
||||
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 {
|
||||
var log = ""
|
||||
|
||||
fun get(state: State, desc: PropertyMetadataImpl): Int {
|
||||
fun get(state: State, desc: PropertyMetadata): Int {
|
||||
log += format("get", desc.name, 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)
|
||||
state.realValue = value
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@ trait Base {
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user