From 9938c583544f4f0cb7d122cecd4ecddfd0b03bec Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Thu, 25 Jul 2013 16:37:14 +0400 Subject: [PATCH] check all upper bounds even if there are some error types in bounds for cases like 'val l:List = id(newList())' List is a lower bound for id's type parameter here --- .../lang/resolve/calls/inference/ConstraintsUtil.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/inference/ConstraintsUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/inference/ConstraintsUtil.java index 10200c5eb05..c5bc25246dc 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/inference/ConstraintsUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/inference/ConstraintsUtil.java @@ -64,12 +64,10 @@ public class ConstraintsUtil { } addToValuesIfDifferent(superTypeOfLowerBounds, values); - if (values.isEmpty()) { - Collection upperBounds = typeConstraintsWithoutErrorTypes.getUpperBounds(); - for (JetType upperBound : upperBounds) { - if (trySuggestion(upperBound, typeConstraints)) { - return Collections.singleton(upperBound); - } + Collection upperBounds = typeConstraintsWithoutErrorTypes.getUpperBounds(); + for (JetType upperBound : upperBounds) { + if (trySuggestion(upperBound, typeConstraints)) { + return Collections.singleton(upperBound); } } //todo