Fix DeserializerForDecompiler: create package fragment provider for missing dependencies
This commit is contained in:
+1
-43
@@ -17,50 +17,8 @@
|
||||
package org.jetbrains.jet.lang.types.error
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||
import org.jetbrains.jet.lang.types.TypeConstructorImpl
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotations
|
||||
import java.util.ArrayList
|
||||
import org.jetbrains.jet.lang.types.TypeConstructor
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||
import org.jetbrains.jet.lang.types.TypeSubstitutor
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||
import org.jetbrains.jet.lang.descriptors.impl.ClassDescriptorImpl
|
||||
import org.jetbrains.jet.lang.descriptors.impl.ConstructorDescriptorImpl
|
||||
import java.util.Collections
|
||||
import org.jetbrains.jet.lang.descriptors.Visibilities
|
||||
import org.jetbrains.jet.lang.descriptors.Modality
|
||||
import org.jetbrains.jet.lang.types.JetType
|
||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor
|
||||
import org.jetbrains.jet.lang.types.ErrorUtils.*
|
||||
import org.jetbrains.jet.lang.resolve.name.Name
|
||||
import org.jetbrains.jet.lang.types.TypeProjection
|
||||
|
||||
// marker for DescriptorRenderer to treat specially in decompiler mode
|
||||
public trait MissingDependencyErrorClass {
|
||||
val fullFqName: FqName
|
||||
}
|
||||
|
||||
public class MissingDependencyErrorClassDescriptor(override val fullFqName: FqName)
|
||||
: MissingDependencyErrorClass, ClassDescriptorImpl(getErrorModule(), fullFqName.shortName(), Modality.OPEN, Collections.emptyList<JetType>()) {
|
||||
|
||||
override fun substitute(substitutor: TypeSubstitutor): ClassDescriptor {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return getName().asString()
|
||||
}
|
||||
|
||||
override fun getMemberScope(typeArguments: List<TypeProjection?>): JetScope {
|
||||
return createErrorScope("Error scope for class " + getName() + " with arguments: " + typeArguments)
|
||||
}
|
||||
|
||||
{
|
||||
val emptyConstructor = ConstructorDescriptorImpl.create(this, Annotations.EMPTY, true)
|
||||
emptyConstructor.initialize(Collections.emptyList<TypeParameterDescriptor>(), Collections.emptyList<ValueParameterDescriptor>(), Visibilities.INTERNAL, false)
|
||||
emptyConstructor.setReturnType(createErrorType("<ERROR RETURN TYPE>"))
|
||||
initialize(JetScope.EMPTY, Collections.singleton<ConstructorDescriptor>(emptyConstructor), emptyConstructor)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user