Analysis API: Don't resolve references to @Deprecated(HIDDEN)

declarations.
This commit is contained in:
Mark Punzalan
2021-09-23 07:43:50 +00:00
committed by TeamCityServer
parent 41a1fa25e2
commit 7425986bf0
7 changed files with 47 additions and 0 deletions
@@ -47,6 +47,10 @@ internal fun FirNamedReference.getCandidateSymbols(): Collection<FirBasedSymbol<
internal fun ConeDiagnostic.getCandidateSymbols(): Collection<FirBasedSymbol<*>> =
when (this) {
is ConeHiddenCandidateError -> {
// Candidate with @Deprecated(DeprecationLevel.HIDDEN)
emptyList()
}
is ConeDiagnosticWithCandidates -> candidateSymbols
else -> emptyList()
}
@@ -150,6 +150,18 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
runTest("analysis/analysis-api/testData/referenceResolve/DefaultObjectInShortReferenceFormCall.kt");
}
@Test
@TestMetadata("Deprecated.kt")
public void testDeprecated() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/Deprecated.kt");
}
@Test
@TestMetadata("DeprecatedHidden.kt")
public void testDeprecatedHidden() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/DeprecatedHidden.kt");
}
@Test
@TestMetadata("EnumValues.kt")
public void testEnumValues() throws Exception {
@@ -270,6 +282,12 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
runTest("analysis/analysis-api/testData/referenceResolve/InVaragReferenceInNamedParameter.kt");
}
@Test
@TestMetadata("InvisibleMember.kt")
public void testInvisibleMember() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/InvisibleMember.kt");
}
@Test
@TestMetadata("JavaAnnotationParameter.kt")
public void testJavaAnnotationParameter() throws Exception {
@@ -0,0 +1,6 @@
@Deprecated("don't use i")
val i: Int = 1
fun test() {
<caret>i
}
@@ -0,0 +1,2 @@
Resolved to:
0: (in ROOT) val i: kotlin.Int
@@ -0,0 +1,8 @@
// UNRESOLVED_REFERENCE
@Deprecated("don't use i", level = DeprecationLevel.HIDDEN)
val i: Int = 1
fun test() {
<caret>i
}
@@ -0,0 +1,7 @@
class A {
private val i: Int = 1
}
fun test(a: A) {
a.<caret>i
}
@@ -0,0 +1,2 @@
Resolved to:
0: (in A) private val i: kotlin.Int