FIR IDE: implement assignment statement references
This commit is contained in:
Generated
+10
@@ -254,6 +254,16 @@ public class FirReferenceResolveTestGenerated extends AbstractFirReferenceResolv
|
||||
runTest("idea/testData/resolve/references/JavaReference.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("KotlinPropertyAssignment.kt")
|
||||
public void testKotlinPropertyAssignment() throws Exception {
|
||||
runTest("idea/testData/resolve/references/KotlinPropertyAssignment.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("KotlinPropertyWithGetterAndSetterAssignment.kt")
|
||||
public void testKotlinPropertyWithGetterAndSetterAssignment() throws Exception {
|
||||
runTest("idea/testData/resolve/references/KotlinPropertyWithGetterAndSetterAssignment.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("MultiDeclarationExtension.kt")
|
||||
public void testMultiDeclarationExtension() throws Exception {
|
||||
runTest("idea/testData/resolve/references/MultiDeclarationExtension.kt");
|
||||
|
||||
+8
@@ -156,12 +156,20 @@ internal object FirReferenceResolveHelper {
|
||||
}
|
||||
is FirReturnExpression -> getSymbolsByReturnExpression(expression, fir, symbolBuilder)
|
||||
is FirErrorNamedReference -> getSymbolsByErrorNamedReference(fir, symbolBuilder)
|
||||
is FirVariableAssignment -> getSymbolsByVariableAssignment(fir, session, symbolBuilder)
|
||||
is FirResolvable -> getSymbolsByResolvable(fir, expression, session, symbolBuilder)
|
||||
is FirNamedArgumentExpression -> getSymbolsByNameArgumentExpression(expression, analysisSession, symbolBuilder)
|
||||
else -> handleUnknownFirElement(expression, analysisSession, session, symbolBuilder)
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
private fun getSymbolsByVariableAssignment(
|
||||
fir: FirVariableAssignment,
|
||||
session: FirSession,
|
||||
symbolBuilder: KtSymbolByFirBuilder
|
||||
): Collection<KtSymbol> = fir.calleeReference.toTargetSymbol(session, symbolBuilder)
|
||||
|
||||
private fun getSymbolsByNameArgumentExpression(
|
||||
expression: KtSimpleNameExpression,
|
||||
analysisSession: KtFirAnalysisSession,
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
class A {
|
||||
var something: Int = 10
|
||||
}
|
||||
|
||||
fun A.foo(a: A) {
|
||||
print(a.<caret>something)
|
||||
a.<caret>something = 1
|
||||
a.<caret>something += 1
|
||||
a.<caret>something++
|
||||
--a.<caret>something
|
||||
|
||||
<caret>something++
|
||||
(<caret>something)++
|
||||
(<caret>something) = 1
|
||||
(a.<caret>something) = 1
|
||||
}
|
||||
|
||||
// MULTIRESOLVE
|
||||
// REF1: (in A).something
|
||||
// REF2: (in A).something
|
||||
// REF3: (in A).something
|
||||
// REF4: (in A).something
|
||||
// REF5: (in A).something
|
||||
// REF6: (in A).something
|
||||
// REF7: (in A).something
|
||||
// REF8: (in A).something
|
||||
// REF9: (in A).something
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
class A {
|
||||
var something: Int
|
||||
set(value) {}
|
||||
get() = 10
|
||||
}
|
||||
|
||||
fun A.foo(a: A) {
|
||||
print(a.<caret>something)
|
||||
a.<caret>something = 1
|
||||
a.<caret>something += 1
|
||||
a.<caret>something++
|
||||
--a.<caret>something
|
||||
|
||||
<caret>something++
|
||||
(<caret>something)++
|
||||
(<caret>something) = 1
|
||||
(a.<caret>something) = 1
|
||||
}
|
||||
|
||||
// MULTIRESOLVE
|
||||
// REF1: (in A).something
|
||||
// REF2: (in A).something
|
||||
// REF3: (in A).something
|
||||
// REF4: (in A).something
|
||||
// REF5: (in A).something
|
||||
// REF6: (in A).something
|
||||
// REF7: (in A).something
|
||||
// REF8: (in A).something
|
||||
// REF9: (in A).something
|
||||
+10
@@ -254,6 +254,16 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
|
||||
runTest("idea/testData/resolve/references/JavaReference.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("KotlinPropertyAssignment.kt")
|
||||
public void testKotlinPropertyAssignment() throws Exception {
|
||||
runTest("idea/testData/resolve/references/KotlinPropertyAssignment.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("KotlinPropertyWithGetterAndSetterAssignment.kt")
|
||||
public void testKotlinPropertyWithGetterAndSetterAssignment() throws Exception {
|
||||
runTest("idea/testData/resolve/references/KotlinPropertyWithGetterAndSetterAssignment.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("MultiDeclarationExtension.kt")
|
||||
public void testMultiDeclarationExtension() throws Exception {
|
||||
runTest("idea/testData/resolve/references/MultiDeclarationExtension.kt");
|
||||
|
||||
Reference in New Issue
Block a user