From c2e8282fb92c60bc4b1e4e36bd5b6e0a853d25e9 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 21 Jun 2013 11:56:01 +0400 Subject: [PATCH] Make type parameter name be always notnull Fix java.lang.AssertionError: @NotNull method org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyTypeParameterDescriptor.getName must not return null --- .../org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java | 2 +- .../lazy/descriptors/LazyTypeParameterDescriptor.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java index 6447e6dc929..15cefb3b344 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java @@ -243,7 +243,6 @@ public class ResolveSession implements KotlinCodeAnalyzer { DeclarationDescriptor ownerDescriptor = resolveToDescriptor(ownerElement); List typeParameters; - Name name = parameter.getNameAsName(); if (ownerDescriptor instanceof CallableDescriptor) { CallableDescriptor callableDescriptor = (CallableDescriptor) ownerDescriptor; typeParameters = callableDescriptor.getTypeParameters(); @@ -256,6 +255,7 @@ public class ResolveSession implements KotlinCodeAnalyzer { throw new IllegalStateException("Unknown owner kind for a type parameter: " + ownerDescriptor); } + Name name = ResolveSessionUtils.safeNameForLazyResolve(parameter.getNameAsName()); for (TypeParameterDescriptor typeParameterDescriptor : typeParameters) { if (typeParameterDescriptor.getName().equals(name)) { return typeParameterDescriptor; 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 5429e327436..4313681269c 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 @@ -27,8 +27,9 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.lazy.LazyDescriptor; -import org.jetbrains.jet.lang.resolve.lazy.storage.NotNullLazyValue; import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; +import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils; +import org.jetbrains.jet.lang.resolve.lazy.storage.NotNullLazyValue; import org.jetbrains.jet.lang.resolve.lazy.storage.StorageManager; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -69,7 +70,7 @@ public class LazyTypeParameterDescriptor implements TypeParameterDescriptor, Laz this.variance = jetTypeParameter.getVariance(); this.containingDeclaration = containingDeclaration; this.index = index; - this.name = jetTypeParameter.getNameAsName(); + this.name = ResolveSessionUtils.safeNameForLazyResolve(jetTypeParameter.getNameAsName()); this.reified = jetTypeParameter.hasModifier(JetTokens.REIFIED_KEYWORD); StorageManager storageManager = resolveSession.getStorageManager();