In non-lazy mode, script classes are normal MutableClassDescriptors
This commit is contained in:
@@ -30,7 +30,6 @@ import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
|||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
// SCRIPT: Script declaration descriptor
|
// SCRIPT: Script declaration descriptor
|
||||||
@@ -48,7 +47,7 @@ public class ScriptDescriptorImpl extends DeclarationDescriptorNonRootImpl imple
|
|||||||
KotlinBuiltIns.getInstance().getAnyType(),
|
KotlinBuiltIns.getInstance().getAnyType(),
|
||||||
new ScriptReceiver(this));
|
new ScriptReceiver(this));
|
||||||
|
|
||||||
private final ClassDescriptorImpl classDescriptor;
|
private final MutableClassDescriptor classDescriptor;
|
||||||
|
|
||||||
private final WritableScopeImpl classScope;
|
private final WritableScopeImpl classScope;
|
||||||
private WritableScope scopeForBodyResolution;
|
private WritableScope scopeForBodyResolution;
|
||||||
@@ -62,11 +61,16 @@ public class ScriptDescriptorImpl extends DeclarationDescriptorNonRootImpl imple
|
|||||||
super(containingDeclaration, Annotations.EMPTY, NAME);
|
super(containingDeclaration, Annotations.EMPTY, NAME);
|
||||||
this.priority = priority;
|
this.priority = priority;
|
||||||
|
|
||||||
classDescriptor = new ClassDescriptorImpl(containingDeclaration, className, Modality.FINAL,
|
classDescriptor = new MutableClassDescriptor(containingDeclaration, scriptScope, ClassKind.CLASS, false, className);
|
||||||
Collections.singleton(KotlinBuiltIns.getInstance().getAnyType()));
|
classDescriptor.addSupertype(KotlinBuiltIns.getInstance().getAnyType());
|
||||||
classScope = new WritableScopeImpl(scriptScope, containingDeclaration, RedeclarationHandler.DO_NOTHING, "script members");
|
classDescriptor.setModality(Modality.FINAL);
|
||||||
|
classDescriptor.setVisibility(Visibilities.PUBLIC);
|
||||||
|
classDescriptor.setTypeParameterDescriptors(Collections.<TypeParameterDescriptor>emptyList());
|
||||||
|
|
||||||
|
classScope = new WritableScopeImpl(JetScope.EMPTY, classDescriptor, RedeclarationHandler.DO_NOTHING, "script members");
|
||||||
classScope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
classScope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
||||||
classDescriptor.initialize(classScope, new HashSet<ConstructorDescriptor>(), null);
|
classDescriptor.setScopeForMemberLookup(classScope);
|
||||||
|
classDescriptor.createTypeConstructor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initialize(
|
public void initialize(
|
||||||
|
|||||||
Reference in New Issue
Block a user