From 365319a8e676e9c914a0aa866b5ce4ac8c4aa152 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 11 Sep 2014 16:18:01 +0400 Subject: [PATCH] LTDA: Make supertypes in lazy type parameters be recorded in order of declaration --- .../resolve/lazy/descriptors/LazyTypeParameterDescriptor.java | 4 ++-- .../typeParameters/typeParametersAndConstraintsCombined1.kt | 4 ++-- .../typeParametersAndConstraintsCombined1.kt.after | 4 ++-- .../typeParameters/typeParametersAndConstraintsCombined2.kt | 2 +- .../typeParametersAndConstraintsCombined2.kt.after | 2 +- .../typeParameters/typeParametersCombinedAndThis.kt | 2 +- .../typeParameters/typeParametersCombinedAndThis.kt.after | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyTypeParameterDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyTypeParameterDescriptor.java index a1a0fcb29d4..5e5520973b6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyTypeParameterDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyTypeParameterDescriptor.java @@ -65,13 +65,13 @@ public class LazyTypeParameterDescriptor extends AbstractLazyTypeParameterDescri JetTypeParameter jetTypeParameter = this.jetTypeParameter; - resolveUpperBoundsFromWhereClause(upperBounds); - JetTypeReference extendsBound = jetTypeParameter.getExtendsBound(); if (extendsBound != null) { upperBounds.add(resolveBoundType(extendsBound)); } + resolveUpperBoundsFromWhereClause(upperBounds); + if (upperBounds.isEmpty()) { upperBounds.add(KotlinBuiltIns.getInstance().getDefaultBound()); } diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt index 0d60a756c46..bae4f16ba97 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt @@ -1,8 +1,8 @@ // PARAM_TYPES: A // PARAM_TYPES: A.B // PARAM_TYPES: V, Data -// PARAM_DESCRIPTOR: internal final class A where T : Data defined in root package -// PARAM_DESCRIPTOR: internal final inner class B where U : Data defined in A +// PARAM_DESCRIPTOR: internal final class A where T : DataEx defined in root package +// PARAM_DESCRIPTOR: internal final inner class B where U : DataExEx defined in A // PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after index e1b437681ae..2065741344a 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after @@ -1,8 +1,8 @@ // PARAM_TYPES: A // PARAM_TYPES: A.B // PARAM_TYPES: V, Data -// PARAM_DESCRIPTOR: internal final class A where T : Data defined in root package -// PARAM_DESCRIPTOR: internal final inner class B where U : Data defined in A +// PARAM_DESCRIPTOR: internal final class A where T : DataEx defined in root package +// PARAM_DESCRIPTOR: internal final inner class B where U : DataExEx defined in A // PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt index 3d3bd3b8275..c574a6052c5 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt @@ -1,6 +1,6 @@ // PARAM_TYPES: A.B // PARAM_TYPES: V, Data -// PARAM_DESCRIPTOR: internal final inner class B where U : Data defined in A +// PARAM_DESCRIPTOR: internal final inner class B where U : DataExEx defined in A // PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after index 1e07f2964fd..95036917478 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after @@ -1,6 +1,6 @@ // PARAM_TYPES: A.B // PARAM_TYPES: V, Data -// PARAM_DESCRIPTOR: internal final inner class B where U : Data defined in A +// PARAM_DESCRIPTOR: internal final inner class B where U : DataExEx defined in A // PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt index 818272b84bf..6ed8915366a 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt @@ -1,6 +1,6 @@ // PARAM_TYPES: A // PARAM_TYPES: V, Data -// PARAM_DESCRIPTOR: internal final class A where T : Data defined in root package +// PARAM_DESCRIPTOR: internal final class A where T : DataEx defined in root package // PARAM_DESCRIPTOR: value-parameter val v: V defined in A.foo open class Data(val x: Int) trait DataEx diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after index 1b92e450422..e3d6a429ba0 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after @@ -1,6 +1,6 @@ // PARAM_TYPES: A // PARAM_TYPES: V, Data -// PARAM_DESCRIPTOR: internal final class A where T : Data defined in root package +// PARAM_DESCRIPTOR: internal final class A where T : DataEx defined in root package // PARAM_DESCRIPTOR: value-parameter val v: V defined in A.foo open class Data(val x: Int) trait DataEx