fix inner classes in JavaDescriptorResolver, kill type variable by psi resolver
This commit is contained in:
@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
+1
@@ -22,6 +22,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
+7
-1
@@ -17,8 +17,10 @@
|
||||
package org.jetbrains.jet.lang.descriptors;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.SubstitutingScope;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||
@@ -112,7 +114,11 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
|
||||
@NotNull
|
||||
@Override
|
||||
public Set<ConstructorDescriptor> getConstructors() {
|
||||
throw new UnsupportedOperationException(); // TODO
|
||||
Set<ConstructorDescriptor> r = Sets.newHashSet();
|
||||
for (ConstructorDescriptor constructor : original.getConstructors()) {
|
||||
r.add((ConstructorDescriptor) constructor.substitute(getSubstitutor()));
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+6
@@ -68,6 +68,12 @@ public abstract class WritableScopeWithImports extends JetScopeAdapter implement
|
||||
throw new IllegalStateException("cannot write with lock level " + lockLevel + " at " + debugName);
|
||||
}
|
||||
}
|
||||
|
||||
protected void checkMayNotWrite() {
|
||||
if (lockLevel == LockLevel.WRITING || lockLevel == LockLevel.BOTH) {
|
||||
throw new IllegalStateException("cannot write with lock level " + lockLevel + " at " + debugName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user