Workaround for appearance of PsiClass from runtime in JavaDescriptorResolver

This commit is contained in:
Natalia.Ukhorskaya
2013-04-30 21:14:40 +04:00
parent b9e5227b58
commit b88981f678
4 changed files with 27 additions and 5 deletions
+7 -2
View File
@@ -65,13 +65,18 @@ public open class Throwable(message : String? = null, cause: Throwable? = null)
public fun printStackTrace() : Unit
}
/*
* Should have an abstract property 'name', overridden in PropertyMetadataImpl
*/
public trait PropertyMetadata {
public val name: String
public fun getName(): String
}
/*
* In front-end we need to resolve call PropertyMetadataImpl() in getter of delegated property
* to be able generate it in back-end using ExpressionCodegen.invokeFunction
*/
public class PropertyMetadataImpl(public override val name: String): PropertyMetadata
public class PropertyMetadataImpl(private val innerName: String): PropertyMetadata {
public override fun getName(): String = innerName
}
+4 -3
View File
@@ -1357,12 +1357,13 @@ public trait Progression</*0*/ N : jet.Any> : jet.Iterable<N> {
}
public trait PropertyMetadata {
public abstract val name: jet.String
public abstract fun getName(): jet.String
}
public final class PropertyMetadataImpl : jet.PropertyMetadata {
public constructor PropertyMetadataImpl(/*0*/ name: jet.String)
public open override /*1*/ val name: jet.String
public constructor PropertyMetadataImpl(/*0*/ innerName: jet.String)
private final val innerName: jet.String
public open override /*1*/ fun getName(): jet.String
}
public trait Range</*0*/ in T : jet.Comparable<T>> {
@@ -0,0 +1,11 @@
/* Number of result in completion should be fixed after removing duplicates */
package first
fun firstFun() {
val a = PropertyM<caret>
}
// TIME: 1
// EXIST: PropertyMetadata@PropertyMetadata~(jet)
// EXIST: PropertyMetadataImpl@PropertyMetadataImpl~(jet)
// NUMBER: 5
@@ -441,6 +441,11 @@ public class JetBasicJavaCompletionTestGenerated extends AbstractJavaCompletionT
doTest("idea/testData/completion/basic/java/NoImportedJavaClassDuplication.kt");
}
@TestMetadata("PropertyMetadata.kt")
public void testPropertyMetadata() throws Exception {
doTest("idea/testData/completion/basic/java/PropertyMetadata.kt");
}
@TestMetadata("TopLevelFromStandardLibrary.kt")
public void testTopLevelFromStandardLibrary() throws Exception {
doTest("idea/testData/completion/basic/java/TopLevelFromStandardLibrary.kt");