Minor code improvements

This commit is contained in:
Andrey Breslav
2013-11-14 17:29:55 +04:00
parent d52a1b56ae
commit 81069cd213
5 changed files with 6 additions and 16 deletions
@@ -150,6 +150,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
new GlobalJavaResolverContext(
storageManager,
new JavaClassFinder() {
@Nullable
@Override
public JavaClass findClass(@NotNull FqName fqName) {
@@ -80,7 +80,7 @@ class LazyJavaAnnotationDescriptor(
private val _allValueArguments = c.storageManager.createLazyValue {
val constructors = getAnnotationClass().getConstructors()
if (constructors.isEmpty())
mapOf<ValueParameterDescriptor, CompileTimeConstant<out Any?>>()
mapOf<ValueParameterDescriptor, CompileTimeConstant<*>>()
else
constructors.first().getValueParameters().keysToMapExceptNulls {
vp -> getValueArgument(vp)
@@ -43,6 +43,7 @@ import org.jetbrains.jet.lang.resolve.java.resolver.ExternalSignatureResolver
import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPropertyDescriptorForObject
import org.jetbrains.jet.lang.descriptors.impl.ClassDescriptorImpl
import org.jetbrains.jet.utils.Printer
public abstract class LazyJavaMemberScope(
protected val c: LazyJavaResolverContextWithTypes,
@@ -40,26 +40,14 @@ trait TypeParameterResolver {
fun resolveTypeParameter(javaTypeParameter: JavaTypeParameter): TypeParameterDescriptor?
}
class TypeParameterResolverImpl(
_typeParameters: Collection<LazyJavaTypeParameterDescriptor>,
private val parent: TypeParameterResolver = TypeParameterResolver.EMPTY
) : TypeParameterResolver {
private val parameters = _typeParameters.valuesToMap { p -> p.javaTypeParameter }
override fun resolveTypeParameter(javaTypeParameter: JavaTypeParameter): TypeParameterDescriptor? {
return parameters[javaTypeParameter] ?: parent.resolveTypeParameter(javaTypeParameter)
}
}
class LazyJavaTypeParameterResolver(
val c: LazyJavaResolverContextWithTypes,
private val containingDeclaration: DeclarationDescriptor,
private val typeParameters: Set<JavaTypeParameter>
) : TypeParameterResolver {
private val resolve: (JavaTypeParameter) -> TypeParameterDescriptor? = c.storageManager.createMemoizedFunctionWithNullableValues {
javaTypeParameter ->
private val resolve = c.storageManager.createMemoizedFunctionWithNullableValues {
(javaTypeParameter: JavaTypeParameter) ->
if (javaTypeParameter in typeParameters)
LazyJavaTypeParameterDescriptor(
c.withTypes(this),
@@ -145,7 +145,7 @@ class LazyJavaTypeResolver(
private fun getConstructorTypeParameterSubstitute(): JetType {
// If a Java-constructor declares its own type parameters, we have no way of directly expressing them in Kotlin,
// so we replace thwm by intersections of their upper bounds
var supertypesJet = HashSet<JetType>()
val supertypesJet = HashSet<JetType>()
for (supertype in (classifier() as JavaTypeParameter).getUpperBounds()) {
supertypesJet.add(transformJavaType(supertype, UPPER_BOUND.toAttributes()))
}