diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java index 071b75180e3..d7de32ca75b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java @@ -80,13 +80,18 @@ public class TypeResolver { trace.record(BindingContext.REFERENCE_TARGET, referenceExpression, typeParameterDescriptor); - result[0] = new JetTypeImpl( - annotations, - typeParameterDescriptor.getTypeConstructor(), - nullable || TypeUtils.hasNullableLowerBound(typeParameterDescriptor), - Collections.emptyList(), - getScopeForTypeParameter(typeParameterDescriptor) - ); + JetScope scopeForTypeParameter = getScopeForTypeParameter(typeParameterDescriptor); + if (scopeForTypeParameter instanceof ErrorUtils.ErrorScope) { + result[0] = ErrorUtils.createErrorType("?"); + } else { + result[0] = new JetTypeImpl( + annotations, + typeParameterDescriptor.getTypeConstructor(), + nullable || TypeUtils.hasNullableLowerBound(typeParameterDescriptor), + Collections.emptyList(), + scopeForTypeParameter + ); + } resolveTypeProjections(scope, ErrorUtils.createErrorType("No type").getConstructor(), type.getTypeArguments()); }