Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Intellij Community
Commits
bcf1b83f
Commit
bcf1b83f
authored
2 years ago
by
Jinseong Jeon
Browse files
Options
Download
Email Patches
Plain Diff
FIR UAST: add support for multi resolve
parent
76a12824
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt
+16
-0
...brains/uast/kotlin/FirKotlinUastResolveProviderService.kt
plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/internal/FirCliKotlinUastResolveProviderService.kt
+0
-5
...kotlin/internal/FirCliKotlinUastResolveProviderService.kt
plugins/kotlin/uast/uast-kotlin-fir/test/org/jetbrains/kotlin/idea/fir/uast/FirUastResolveApiFixtureTest.kt
+2
-10
...ains/kotlin/idea/fir/uast/FirUastResolveApiFixtureTest.kt
plugins/kotlin/uast/uast-kotlin-idea-fir/src/org/jetbrains/uast/kotlin/internal/FirIdeaKotlinUastResolveProviderService.kt
+0
-6
...otlin/internal/FirIdeaKotlinUastResolveProviderService.kt
with
18 additions
and
21 deletions
+18
-21
plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt
+
16
-
0
View file @
bcf1b83f
...
...
@@ -185,6 +185,22 @@ interface FirKotlinUastResolveProviderService : BaseKotlinUastResolveProviderSer
return
psiElement
.
annotations
}
override
fun
getReferenceVariants
(
ktExpression
:
KtExpression
,
nameHint
:
String
):
Sequence
<
PsiElement
>
{
analyzeForUast
(
ktExpression
)
{
return
ktExpression
.
collectCallCandidates
().
asSequence
().
mapNotNull
{
when
(
val
candidate
=
it
.
candidate
)
{
is
KtFunctionCall
<
*
>
->
{
toPsiMethod
(
candidate
.
partiallyAppliedSymbol
.
symbol
,
ktExpression
)
}
is
KtCompoundAccessCall
->
{
toPsiMethod
(
candidate
.
compoundAccess
.
operationPartiallyAppliedSymbol
.
symbol
,
ktExpression
)
}
else
->
null
}
}
}
}
override
fun
resolveBitwiseOperators
(
ktBinaryExpression
:
KtBinaryExpression
):
UastBinaryOperator
{
val
other
=
UastBinaryOperator
.
OTHER
analyzeForUast
(
ktBinaryExpression
)
{
...
...
This diff is collapsed.
Click to expand it.
plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/internal/FirCliKotlinUastResolveProviderService.kt
+
0
-
5
View file @
bcf1b83f
...
...
@@ -3,14 +3,9 @@
package
org.jetbrains.uast.kotlin.internal
import
com.intellij.psi.PsiElement
import
org.jetbrains.kotlin.psi.KtExpression
import
org.jetbrains.uast.kotlin.FirKotlinUastResolveProviderService
class
FirCliKotlinUastResolveProviderService
:
FirKotlinUastResolveProviderService
{
// Currently, UAST CLI is used by Android Lint, i.e., everything is a JVM element.
override
fun
isJvmElement
(
psiElement
:
PsiElement
):
Boolean
=
true
override
fun
getReferenceVariants
(
ktExpression
:
KtExpression
,
nameHint
:
String
):
Sequence
<
PsiElement
>
{
return
emptySequence
()
// Not supported (as per the counterpart [CliKotlinUastResolveProviderService])
}
}
This diff is collapsed.
Click to expand it.
plugins/kotlin/uast/uast-kotlin-fir/test/org/jetbrains/kotlin/idea/fir/uast/FirUastResolveApiFixtureTest.kt
+
2
-
10
View file @
bcf1b83f
...
...
@@ -20,20 +20,12 @@ class FirUastResolveApiFixtureTest : KotlinLightCodeInsightFixtureTestCase(), Ua
KotlinWithJdkAndRuntimeLightProjectDescriptor
.
getInstance
()
private
val
whitelist
:
Set
<
String
>
=
setOf
(
// TODO: multiResolve, getArgumentForParameter
"MultiResolve"
,
// TODO: multiResolve, getArgumentForParameter
"MultiResolveJava"
,
// TODO: multiResolve, getArgumentForParameter, return type for ambiguous call
// TODO: return type for ambiguous call
"MultiResolveJavaAmbiguous"
,
// TODO: multiResolve
"MultiResolveInClass"
,
// TODO: multiResolve, return type for ambiguous call
// TODO: return type for ambiguous call
"MultiConstructorResolve"
,
// TODO: multiResolve
"MultiInvokableObjectResolve"
,
// TODO: multiResolve
"MultiResolveJvmOverloads"
,
// TODO: resolve annotation param to annotation ctor ??
"ResolveCompiledAnnotation"
,
)
...
...
This diff is collapsed.
Click to expand it.
plugins/kotlin/uast/uast-kotlin-idea-fir/src/org/jetbrains/uast/kotlin/internal/FirIdeaKotlinUastResolveProviderService.kt
+
0
-
6
View file @
bcf1b83f
...
...
@@ -3,14 +3,8 @@
package
org.jetbrains.uast.kotlin.internal
import
com.intellij.psi.PsiElement
import
org.jetbrains.kotlin.psi.KtExpression
import
org.jetbrains.uast.kotlin.FirKotlinUastResolveProviderService
class
FirIdeaKotlinUastResolveProviderService
:
FirKotlinUastResolveProviderService
{
override
fun
isJvmElement
(
psiElement
:
PsiElement
):
Boolean
=
psiElement
.
isJvmElement
override
fun
getReferenceVariants
(
ktExpression
:
KtExpression
,
nameHint
:
String
):
Sequence
<
PsiElement
>
{
// TODO("Not yet implemented")
return
emptySequence
()
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help