Minor code improvements
This commit is contained in:
+1
@@ -150,6 +150,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
new GlobalJavaResolverContext(
|
||||
storageManager,
|
||||
new JavaClassFinder() {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public JavaClass findClass(@NotNull FqName fqName) {
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
+1
@@ -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,
|
||||
|
||||
+2
-14
@@ -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),
|
||||
|
||||
+1
-1
@@ -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()))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user