Check that injection with annotation on parameter doesn't trigger not-stubbed psi

This commit is contained in:
Nikolay Krasko
2016-04-26 19:55:51 +03:00
parent dd8b667360
commit b8e2533b58
4 changed files with 26 additions and 6 deletions
@@ -39,6 +39,12 @@ public class KtParameterList extends KtElementImplStub<KotlinPlaceHolderStub<KtP
return visitor.visitParameterList(this, data);
}
@Override
public PsiElement getParent() {
KotlinPlaceHolderStub<KtParameterList> stub = getStub();
return stub != null ? stub.getParentStub().getPsi() : super.getParent();
}
@NotNull
public List<KtParameter> getParameters() {
return getStubOrPsiChildrenAsList(KtStubElementTypes.VALUE_PARAMETER);
@@ -49,11 +55,6 @@ public class KtParameterList extends KtElementImplStub<KotlinPlaceHolderStub<KtP
return EditCommaSeparatedListHelper.INSTANCE.addItem(this, getParameters(), parameter);
}
@NotNull
public KtParameter addParameterAfter(@NotNull KtParameter parameter, @Nullable KtParameter anchor) {
return EditCommaSeparatedListHelper.INSTANCE.addItemAfter(this, getParameters(), parameter, anchor);
}
@NotNull
public KtParameter addParameterBefore(@NotNull KtParameter parameter, @Nullable KtParameter anchor) {
return EditCommaSeparatedListHelper.INSTANCE.addItemBefore(this, getParameters(), parameter, anchor);
@@ -0,0 +1,8 @@
package annotated.parameter
import util.funWithAnnotatedParameter
fun foo() {
val t = "literal"
funWithAnnotatedParameter(t)
}
+6 -1
View File
@@ -46,4 +46,9 @@ fun funWithVararg(vararg i: Int): IntArray {
fun <T, G> funWithWhere(a: G, b: T) where T: Collection<G> {
}
}
annotation class TempAnnotation
fun funWithAnnotatedParameter(@TempAnnotation param: String) {
}
@@ -35,6 +35,12 @@ public class MultiFileHighlightingTestGenerated extends AbstractMultiFileHighlig
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/multiFileHighlighting"), Pattern.compile("^(.+)\\.kt$"), false);
}
@TestMetadata("annotatedParameter.kt")
public void testAnnotatedParameter() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileHighlighting/annotatedParameter.kt");
doTest(fileName);
}
@TestMetadata("copyResolveBeforeParams.kt")
public void testCopyResolveBeforeParams() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileHighlighting/copyResolveBeforeParams.kt");