Never import object descriptors, for they may overwrite corresponding vals

This commit is contained in:
Andrey Breslav
2013-11-16 15:00:33 +04:00
parent 0fa70b7e47
commit 345ecbf4c0
5 changed files with 33 additions and 1 deletions
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.utils.Printer;
@@ -215,6 +216,10 @@ public abstract class WritableScopeWithImports extends JetScopeAdapter implement
public void importClassifierAlias(@NotNull Name importedClassifierName, @NotNull ClassifierDescriptor classifierDescriptor) {
checkMayWrite();
if (DescriptorUtils.isObject(classifierDescriptor)) {
throw new IllegalStateException("must not be object: " + classifierDescriptor);
}
getCurrentIndividualImportScope().addClassifierAlias(importedClassifierName, classifierDescriptor);
}