Module 'util.runtime' doesn't depend on intellij-core anymore

This commit is contained in:
Alexander Udalov
2014-03-28 20:00:06 +04:00
parent d719222bc4
commit 59c04f5aff
7 changed files with 10 additions and 33 deletions
@@ -168,16 +168,12 @@ public class PropertyCodegen extends GenerationStateAware {
if (descriptor.getAnnotations().isEmpty()) return; if (descriptor.getAnnotations().isEmpty()) return;
ReceiverParameterDescriptor receiver = descriptor.getReceiverParameter(); ReceiverParameterDescriptor receiver = descriptor.getReceiverParameter();
Type receiverAsmType = receiver == null ? null : typeMapper.mapType(receiver.getType()); String name = JvmAbi.getSyntheticMethodNameForAnnotatedProperty(descriptor.getName());
Method method = JvmAbi.getSyntheticMethodSignatureForAnnotatedProperty(descriptor.getName(), receiverAsmType); String desc = receiver == null ? "()V" : "(" + typeMapper.mapType(receiver.getType()) + ")V";
if (!isTrait(context.getContextDescriptor()) || kind == OwnerKind.TRAIT_IMPL) { if (!isTrait(context.getContextDescriptor()) || kind == OwnerKind.TRAIT_IMPL) {
MethodVisitor mv = v.newMethod(null, int flags = ACC_DEPRECATED | ACC_FINAL | ACC_PRIVATE | ACC_STATIC | ACC_SYNTHETIC;
ACC_DEPRECATED | ACC_FINAL | ACC_PRIVATE | ACC_STATIC | ACC_SYNTHETIC, MethodVisitor mv = v.newMethod(null, flags, name, desc, null, null);
method.getName(),
method.getDescriptor(),
null,
null);
AnnotationCodegen.forMethod(mv, typeMapper).genAnnotations(descriptor); AnnotationCodegen.forMethod(mv, typeMapper).genAnnotations(descriptor);
mv.visitCode(); mv.visitCode();
mv.visitInsn(Opcodes.RETURN); mv.visitInsn(Opcodes.RETURN);
@@ -189,7 +185,7 @@ public class PropertyCodegen extends GenerationStateAware {
} }
if (kind != OwnerKind.TRAIT_IMPL) { if (kind != OwnerKind.TRAIT_IMPL) {
v.getSerializationBindings().put(SYNTHETIC_METHOD_FOR_PROPERTY, descriptor, method); v.getSerializationBindings().put(SYNTHETIC_METHOD_FOR_PROPERTY, descriptor, new Method(name, desc));
} }
} }
@@ -41,8 +41,7 @@ public class SyntheticMethodForAnnotatedPropertyGenTest extends CodegenTestCase
return "properties/syntheticMethod"; return "properties/syntheticMethod";
} }
private static final String TEST_SYNTHETIC_METHOD_NAME = private static final String TEST_SYNTHETIC_METHOD_NAME = JvmAbi.getSyntheticMethodNameForAnnotatedProperty(Name.identifier("property"));
JvmAbi.getSyntheticMethodSignatureForAnnotatedProperty(Name.identifier("property"), null).getName();
public void testInClass() { public void testInClass() {
loadFile(); loadFile();
+1 -1
View File
@@ -7,7 +7,7 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="intellij-core" level="project" /> <orderEntry type="library" exported="" scope="PROVIDED" name="intellij-core" level="project" />
<orderEntry type="module" module-name="util.runtime" exported="" /> <orderEntry type="module" module-name="util.runtime" exported="" />
<orderEntry type="module" module-name="Kotlin" exported="" /> <orderEntry type="module" module-name="Kotlin" exported="" />
<orderEntry type="library" exported="" name="kotlin-runtime" level="project" /> <orderEntry type="library" exported="" name="kotlin-runtime" level="project" />
@@ -17,9 +17,6 @@
package org.jetbrains.jet.lang.resolve.java; package org.jetbrains.jet.lang.resolve.java;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.asm4.Type;
import org.jetbrains.asm4.commons.Method;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
@@ -58,12 +55,8 @@ public final class JvmAbi {
} }
@NotNull @NotNull
public static Method getSyntheticMethodSignatureForAnnotatedProperty(@NotNull Name propertyName, @Nullable Type receiver) { public static String getSyntheticMethodNameForAnnotatedProperty(@NotNull Name propertyName) {
return new Method( return propertyName.asString() + ANNOTATED_PROPERTY_METHOD_NAME_SUFFIX;
propertyName.asString() + ANNOTATED_PROPERTY_METHOD_NAME_SUFFIX,
Type.VOID_TYPE,
receiver == null ? new Type[0] : new Type[] {receiver}
);
} }
@NotNull @NotNull
@@ -29,10 +29,8 @@ import org.jetbrains.jet.lang.types.JetType
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPropertyDescriptor import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPropertyDescriptor
import org.jetbrains.jet.lang.descriptors.impl.PropertyDescriptorImpl import org.jetbrains.jet.lang.descriptors.impl.PropertyDescriptorImpl
import java.util.Collections import java.util.Collections
import org.jetbrains.annotations.TestOnly
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalSignatureResolver 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.sam.SingleAbstractMethodUtils
import org.jetbrains.jet.utils.Printer
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor
import org.jetbrains.jet.lang.resolve.java.structure.JavaPropertyInitializerEvaluator import org.jetbrains.jet.lang.resolve.java.structure.JavaPropertyInitializerEvaluator
import org.jetbrains.jet.utils.* import org.jetbrains.jet.utils.*
@@ -349,7 +347,6 @@ public abstract class LazyJavaMemberScope(
override fun toString() = "Lazy scope for ${getContainingDeclaration()}" override fun toString() = "Lazy scope for ${getContainingDeclaration()}"
TestOnly
override fun printScopeStructure(p: Printer) { override fun printScopeStructure(p: Printer) {
p.println(javaClass.getSimpleName(), " {") p.println(javaClass.getSimpleName(), " {")
p.pushIndent() p.pushIndent()
@@ -24,7 +24,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.TypeUsage.*
import org.jetbrains.jet.lang.resolve.java.resolver.* import org.jetbrains.jet.lang.resolve.java.resolver.*
import org.jetbrains.jet.lang.types.Variance.* import org.jetbrains.jet.lang.types.Variance.*
import org.jetbrains.jet.lang.types.* import org.jetbrains.jet.lang.types.*
import com.intellij.openapi.diagnostic.Logger
import org.jetbrains.jet.lang.resolve.java.structure.JavaPrimitiveType import org.jetbrains.jet.lang.resolve.java.structure.JavaPrimitiveType
import org.jetbrains.jet.lang.resolve.java.structure.JavaArrayType import org.jetbrains.jet.lang.resolve.java.structure.JavaArrayType
import org.jetbrains.jet.lang.resolve.java.structure.JavaClassifierType import org.jetbrains.jet.lang.resolve.java.structure.JavaClassifierType
@@ -34,7 +33,6 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaTypeParameter
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
import org.jetbrains.kotlin.util.sure import org.jetbrains.kotlin.util.sure
import org.jetbrains.jet.utils.* import org.jetbrains.jet.utils.*
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaTypeParameterDescriptor
import org.jetbrains.jet.lang.resolve.scopes.JetScope import org.jetbrains.jet.lang.resolve.scopes.JetScope
import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotationOwner import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotationOwner
import org.jetbrains.jet.lang.resolve.java.lazy.* import org.jetbrains.jet.lang.resolve.java.lazy.*
@@ -43,8 +41,6 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod
import java.util.HashSet import java.util.HashSet
import org.jetbrains.jet.lang.types.checker.JetTypeChecker import org.jetbrains.jet.lang.types.checker.JetTypeChecker
private val LOG = Logger.getInstance(javaClass<LazyJavaTypeResolver>())
class LazyJavaTypeResolver( class LazyJavaTypeResolver(
private val c: LazyJavaResolverContext, private val c: LazyJavaResolverContext,
private val typeParameterResolver: TypeParameterResolver private val typeParameterResolver: TypeParameterResolver
@@ -248,10 +244,7 @@ class LazyJavaTypeResolver(
} }
is JavaClass, is JavaClass,
null -> attr.howThisTypeIsUsed !in setOf(TYPE_ARGUMENT, SUPERTYPE_ARGUMENT, SUPERTYPE) null -> attr.howThisTypeIsUsed !in setOf(TYPE_ARGUMENT, SUPERTYPE_ARGUMENT, SUPERTYPE)
else -> { else -> error("Unknown classifier: ${classifier()}")
LOG.error("Unknown classifier: ${classifier()}")
true
}
} }
} }
override fun isNullable(): Boolean = _nullable() override fun isNullable(): Boolean = _nullable()
-1
View File
@@ -7,7 +7,6 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" scope="PROVIDED" name="intellij-core" level="project" />
<orderEntry type="library" exported="" name="kotlin-runtime" level="project" /> <orderEntry type="library" exported="" name="kotlin-runtime" level="project" />
</component> </component>
</module> </module>