[FE 1.0] Add fallback for extracting when call
This commit is contained in:
committed by
teamcity
parent
42e71f8c53
commit
db54d18c72
+6
@@ -34020,6 +34020,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
|
|||||||
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("extractingEntireCall.kt")
|
||||||
|
public void testExtractingEntireCall() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/when/extractingEntireCall.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
||||||
public void testIntersectionExhaustivenessComplex() throws Exception {
|
public void testIntersectionExhaustivenessComplex() throws Exception {
|
||||||
|
|||||||
+6
@@ -34020,6 +34020,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
|
|||||||
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("extractingEntireCall.kt")
|
||||||
|
public void testExtractingEntireCall() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/when/extractingEntireCall.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
||||||
public void testIntersectionExhaustivenessComplex() throws Exception {
|
public void testIntersectionExhaustivenessComplex() throws Exception {
|
||||||
|
|||||||
+6
@@ -34020,6 +34020,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac
|
|||||||
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("extractingEntireCall.kt")
|
||||||
|
public void testExtractingEntireCall() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/when/extractingEntireCall.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
||||||
public void testIntersectionExhaustivenessComplex() throws Exception {
|
public void testIntersectionExhaustivenessComplex() throws Exception {
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ fun KtElement.getCall(context: BindingContext): Call? {
|
|||||||
if (element is KtWhenExpression) {
|
if (element is KtWhenExpression) {
|
||||||
val subjectVariable = element.subjectVariable
|
val subjectVariable = element.subjectVariable
|
||||||
if (subjectVariable != null) {
|
if (subjectVariable != null) {
|
||||||
return subjectVariable.getCall(context)
|
return subjectVariable.getCall(context) ?: context[CALL, element]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
interface FirExpression
|
||||||
|
interface FirNamedArgumentExpression : FirExpression {
|
||||||
|
val expression: FirNamedArgumentExpression
|
||||||
|
}
|
||||||
|
class AnnotationUseSiteTarget
|
||||||
|
|
||||||
|
private fun List<FirExpression>.toAnnotationUseSiteTargets2(): Set<AnnotationUseSiteTarget> =
|
||||||
|
flatMapTo(mutableSetOf()) { arg ->
|
||||||
|
when (val unwrappedArg = if (arg is FirNamedArgumentExpression) arg.expression else arg) {
|
||||||
|
is FirNamedArgumentExpression -> setOf()
|
||||||
|
else -> setOf()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
interface FirExpression
|
||||||
|
interface FirNamedArgumentExpression : FirExpression {
|
||||||
|
val expression: FirNamedArgumentExpression
|
||||||
|
}
|
||||||
|
class AnnotationUseSiteTarget
|
||||||
|
|
||||||
|
private fun List<FirExpression>.toAnnotationUseSiteTargets2(): Set<AnnotationUseSiteTarget> =
|
||||||
|
flatMapTo(mutableSetOf()) { arg ->
|
||||||
|
when (val unwrappedArg = if (arg is FirNamedArgumentExpression) <!DEBUG_INFO_SMARTCAST!>arg<!>.expression else arg) {
|
||||||
|
is FirNamedArgumentExpression -> setOf()
|
||||||
|
else -> setOf()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
private fun kotlin.collections.List<FirExpression>.toAnnotationUseSiteTargets2(): kotlin.collections.Set<AnnotationUseSiteTarget>
|
||||||
|
|
||||||
|
public final class AnnotationUseSiteTarget {
|
||||||
|
public constructor AnnotationUseSiteTarget()
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface FirExpression {
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface FirNamedArgumentExpression : FirExpression {
|
||||||
|
public abstract val expression: FirNamedArgumentExpression
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
Generated
+6
@@ -34110,6 +34110,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
runTest("compiler/testData/diagnostics/tests/when/ExhaustiveWithNullabilityCheckElse.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("extractingEntireCall.kt")
|
||||||
|
public void testExtractingEntireCall() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/when/extractingEntireCall.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
@TestMetadata("intersectionExhaustivenessComplex.kt")
|
||||||
public void testIntersectionExhaustivenessComplex() throws Exception {
|
public void testIntersectionExhaustivenessComplex() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user