From 3b0ca42e0b9579ab8dc685db1c1b720e4e3f1ad7 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 26 Dec 2011 18:59:48 +0400 Subject: [PATCH 1/7] jet.typeinfo.TypeInfo -> jet.TypeInfo --- .../jetbrains/jet/codegen/ClosureCodegen.java | 2 +- .../jet/codegen/ExpressionCodegen.java | 32 +++++++++---------- .../codegen/ImplementationBodyCodegen.java | 22 ++++++------- .../jetbrains/jet/codegen/JetTypeMapper.java | 2 +- .../jet/codegen/NamespaceCodegen.java | 18 +++++------ .../jet/codegen/intrinsics/ArrayIterator.java | 2 +- .../jet/codegen/intrinsics/ValueTypeInfo.java | 2 +- compiler/frontend/src/jet/Library.jet | 28 ++-------------- .../jet/lang/types/JetStandardLibrary.java | 22 ++++++------- .../codegen/typeInfo/oneArgTypeinfo.jet | 4 +-- .../class/Simple.java | 2 +- .../method/GenericArray.java | 2 +- .../method/ListOfT.java | 2 +- .../method/MapOfKString.java | 2 +- .../method/QExtendsListString.java | 2 +- .../method/QExtendsString.java | 2 +- .../diagnostics/tests/regressions/kt716.jet | 4 +-- .../jetbrains/jet/codegen/ClassGenTest.java | 2 +- .../jet/codegen/NamespaceGenTest.java | 2 +- .../jetbrains/jet/codegen/TypeInfoTest.java | 4 +-- .../jet/types/JetTypeCheckerTest.java | 4 +-- grammar/src/toplevel.grm | 14 ++++---- stdlib/src/jet/BooleanIterator.java | 2 -- stdlib/src/jet/ByteIterator.java | 2 -- stdlib/src/jet/CharIterator.java | 2 -- stdlib/src/jet/DefaultJetObject.java | 2 -- stdlib/src/jet/DoubleIterator.java | 2 -- stdlib/src/jet/ExtensionFunction0.java | 2 -- stdlib/src/jet/ExtensionFunction1.java | 1 - stdlib/src/jet/ExtensionFunction10.java | 1 - stdlib/src/jet/ExtensionFunction11.java | 1 - stdlib/src/jet/ExtensionFunction12.java | 1 - stdlib/src/jet/ExtensionFunction13.java | 1 - stdlib/src/jet/ExtensionFunction14.java | 1 - stdlib/src/jet/ExtensionFunction15.java | 1 - stdlib/src/jet/ExtensionFunction16.java | 1 - stdlib/src/jet/ExtensionFunction17.java | 1 - stdlib/src/jet/ExtensionFunction18.java | 1 - stdlib/src/jet/ExtensionFunction19.java | 1 - stdlib/src/jet/ExtensionFunction2.java | 1 - stdlib/src/jet/ExtensionFunction20.java | 1 - stdlib/src/jet/ExtensionFunction21.java | 1 - stdlib/src/jet/ExtensionFunction22.java | 1 - stdlib/src/jet/ExtensionFunction3.java | 1 - stdlib/src/jet/ExtensionFunction4.java | 1 - stdlib/src/jet/ExtensionFunction5.java | 1 - stdlib/src/jet/ExtensionFunction6.java | 1 - stdlib/src/jet/ExtensionFunction7.java | 1 - stdlib/src/jet/ExtensionFunction8.java | 1 - stdlib/src/jet/ExtensionFunction9.java | 1 - stdlib/src/jet/FloatIterator.java | 2 -- stdlib/src/jet/Function0.java | 11 ++----- stdlib/src/jet/Function1.java | 1 - stdlib/src/jet/Function10.java | 1 - stdlib/src/jet/Function11.java | 1 - stdlib/src/jet/Function12.java | 1 - stdlib/src/jet/Function13.java | 1 - stdlib/src/jet/Function14.java | 1 - stdlib/src/jet/Function15.java | 1 - stdlib/src/jet/Function16.java | 1 - stdlib/src/jet/Function17.java | 1 - stdlib/src/jet/Function18.java | 1 - stdlib/src/jet/Function19.java | 1 - stdlib/src/jet/Function2.java | 1 - stdlib/src/jet/Function20.java | 1 - stdlib/src/jet/Function21.java | 1 - stdlib/src/jet/Function22.java | 1 - stdlib/src/jet/Function3.java | 1 - stdlib/src/jet/Function4.java | 1 - stdlib/src/jet/Function5.java | 1 - stdlib/src/jet/Function6.java | 1 - stdlib/src/jet/Function7.java | 1 - stdlib/src/jet/Function8.java | 1 - stdlib/src/jet/Function9.java | 1 - stdlib/src/jet/IntIterator.java | 2 -- stdlib/src/jet/IntRange.java | 2 -- stdlib/src/jet/JetObject.java | 2 -- stdlib/src/jet/LongIterator.java | 2 -- stdlib/src/jet/LongRange.java | 2 -- stdlib/src/jet/ShortIterator.java | 2 -- stdlib/src/jet/Tuple0.java | 2 -- stdlib/src/jet/Tuple1.java | 2 -- stdlib/src/jet/Tuple10.java | 2 -- stdlib/src/jet/Tuple11.java | 2 -- stdlib/src/jet/Tuple12.java | 2 -- stdlib/src/jet/Tuple13.java | 2 -- stdlib/src/jet/Tuple14.java | 2 -- stdlib/src/jet/Tuple15.java | 2 -- stdlib/src/jet/Tuple16.java | 2 -- stdlib/src/jet/Tuple17.java | 2 -- stdlib/src/jet/Tuple18.java | 2 -- stdlib/src/jet/Tuple19.java | 2 -- stdlib/src/jet/Tuple2.java | 2 -- stdlib/src/jet/Tuple20.java | 2 -- stdlib/src/jet/Tuple21.java | 2 -- stdlib/src/jet/Tuple22.java | 2 -- stdlib/src/jet/Tuple3.java | 2 -- stdlib/src/jet/Tuple4.java | 2 -- stdlib/src/jet/Tuple5.java | 2 -- stdlib/src/jet/Tuple6.java | 2 -- stdlib/src/jet/Tuple7.java | 2 -- stdlib/src/jet/Tuple8.java | 2 -- stdlib/src/jet/Tuple9.java | 2 -- stdlib/src/jet/{typeinfo => }/TypeInfo.java | 6 ++-- stdlib/src/jet/runtime/ArrayIterator.java | 2 +- stdlib/src/jet/typeinfo/TypeInfoPattern.java | 2 ++ .../src/jet/typeinfo/TypeInfoProjection.java | 2 +- .../src/org/jetbrains/jet/rt/Signature.java | 2 +- .../org/jetbrains/jet/rt/TypeInfoImpl.java | 2 +- .../org/jetbrains/jet/rt/TypeInfoParser.java | 2 +- .../jet/rt/TypeInfoProjectionImpl.java | 2 +- .../org/jetbrains/jet/rt/TypeInfoUtils.java | 2 +- .../src/org/jetbrains/jet/rt/TypeInfoVar.java | 2 +- 113 files changed, 91 insertions(+), 236 deletions(-) rename stdlib/src/jet/{typeinfo => }/TypeInfo.java (98%) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index 38e58aa2846..5924096a787 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -253,7 +253,7 @@ public class ClosureCodegen extends ObjectOrClosureCodegen { iv.load(0, Type.getObjectType(funClass)); // expressionCodegen.generateTypeInfo(new ProjectionErasingJetType(returnType)); iv.aconst(null); // @todo - iv.invokespecial(funClass, "", "(Ljet/typeinfo/TypeInfo;)V"); + iv.invokespecial(funClass, "", "(Ljet/TypeInfo;)V"); i = 1; int k = 0; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 59cf9453497..a8defc4e9d7 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -991,7 +991,7 @@ public class ExpressionCodegen extends JetVisitor { else if (descriptor instanceof TypeParameterDescriptor) { TypeParameterDescriptor typeParameterDescriptor = (TypeParameterDescriptor) descriptor; loadTypeParameterTypeInfo(typeParameterDescriptor, null); - v.invokevirtual("jet/typeinfo/TypeInfo", "getClassObject", "()Ljava/lang/Object;"); + v.invokevirtual("jet/TypeInfo", "getClassObject", "()Ljava/lang/Object;"); v.checkcast(asmType(typeParameterDescriptor.getClassObjectType())); return StackValue.onStack(TYPE_OBJECT); @@ -2118,7 +2118,7 @@ public class ExpressionCodegen extends JetVisitor { if(elementType != null) { generateTypeInfo(elementType, null); gen(args.get(0).getArgumentExpression(), Type.INT_TYPE); - v.invokevirtual("jet/typeinfo/TypeInfo", "newArray", "(I)[Ljava/lang/Object;"); + v.invokevirtual("jet/TypeInfo", "newArray", "(I)[Ljava/lang/Object;"); } else { gen(args.get(0).getArgumentExpression(), Type.INT_TYPE); @@ -2543,14 +2543,14 @@ If finally block is present, its last expression is the value of try expression. if (leaveExpressionOnStack) { v.dupX1(); } - v.invokevirtual("jet/typeinfo/TypeInfo", "isInstance", "(Ljava/lang/Object;)Z"); + v.invokevirtual("jet/TypeInfo", "isInstance", "(Ljava/lang/Object;)Z"); } } public void generateTypeInfo(JetType jetType, Map typeArguments) { String knownTypeInfo = typeMapper.isKnownTypeInfo(jetType); if(knownTypeInfo != null) { - v.getstatic("jet/typeinfo/TypeInfo", knownTypeInfo, "Ljet/typeinfo/TypeInfo;"); + v.getstatic("jet/TypeInfo", knownTypeInfo, "Ljet/TypeInfo;"); return; } @@ -2562,14 +2562,14 @@ If finally block is present, its last expression is the value of try expression. if(!CodegenUtil.hasTypeInfoField(jetType) && !(bindingContext.get(BindingContext.DESCRIPTOR_TO_DECLARATION, jetType.getConstructor().getDeclarationDescriptor()) instanceof PsiClass)) { // TODO: we need some better checks here - v.getstatic(typeMapper.mapType(jetType, OwnerKind.IMPLEMENTATION).getInternalName(), "$staticTypeInfo", "Ljet/typeinfo/TypeInfo;"); + v.getstatic(typeMapper.mapType(jetType, OwnerKind.IMPLEMENTATION).getInternalName(), "$staticTypeInfo", "Ljet/TypeInfo;"); return; } boolean hasUnsubstituted = TypeUtils.hasUnsubstitutedTypeParameters(jetType); if(!hasUnsubstituted) { int typeInfoConstantIndex = context.getTypeInfoConstantIndex(jetType); - v.invokestatic(context.getNamespaceClassName(), "$getCachedTypeInfo$" + typeInfoConstantIndex, "()Ljet/typeinfo/TypeInfo;"); + v.invokestatic(context.getNamespaceClassName(), "$getCachedTypeInfo$" + typeInfoConstantIndex, "()Ljet/TypeInfo;"); return; } @@ -2590,10 +2590,10 @@ If finally block is present, its last expression is the value of try expression. genTypeInfoToProjection(v, argument.getProjectionKind()); v.astore(TYPE_OBJECT); } - v.invokestatic("jet/typeinfo/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z[Ljet/typeinfo/TypeInfoProjection;)Ljet/typeinfo/TypeInfo;"); + v.invokestatic("jet/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z[Ljet/typeinfo/TypeInfoProjection;)Ljet/TypeInfo;"); } else { - v.invokestatic("jet/typeinfo/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z)Ljet/typeinfo/TypeInfo;"); + v.invokestatic("jet/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z)Ljet/TypeInfo;"); } } @@ -2601,9 +2601,9 @@ If finally block is present, its last expression is the value of try expression. if(variance == Variance.INVARIANT) v.checkcast(TYPE_TYPEINFOPROJECTION); else if(variance == Variance.IN_VARIANCE) - v.invokestatic("jet/typeinfo/TypeInfo", "inProjection", "(Ljet/typeinfo/TypeInfo;)Ljet/typeinfo/TypeInfoProjection;"); + v.invokestatic("jet/TypeInfo", "inProjection", "(Ljet/TypeInfo;)Ljet/typeinfo/TypeInfoProjection;"); else if(variance == Variance.OUT_VARIANCE) - v.invokestatic("jet/typeinfo/TypeInfo", "outProjection", "(Ljet/typeinfo/TypeInfo;)Ljet/typeinfo/TypeInfoProjection;"); + v.invokestatic("jet/TypeInfo", "outProjection", "(Ljet/TypeInfo;)Ljet/typeinfo/TypeInfoProjection;"); else throw new UnsupportedOperationException(variance.toString()); } @@ -2635,19 +2635,19 @@ If finally block is present, its last expression is the value of try expression. if (CodegenUtil.hasTypeInfoField(defaultType)) { if(!(context instanceof CodegenContext.ConstructorContext)) { v.load(0, TYPE_OBJECT); - v.getfield(ownerType.getInternalName(), "$typeInfo", "Ljet/typeinfo/TypeInfo;"); + v.getfield(ownerType.getInternalName(), "$typeInfo", "Ljet/TypeInfo;"); } else { v.load(((ConstructorFrameMap)myFrameMap).getTypeInfoIndex(), TYPE_OBJECT); } } else { - v.getstatic(ownerType.getInternalName(), "$typeInfo", "Ljet/typeinfo/TypeInfo;"); + v.getstatic(ownerType.getInternalName(), "$typeInfo", "Ljet/TypeInfo;"); } } else { v.load(0, TYPE_OBJECT); - v.invokeinterface(TYPE_JET_OBJECT.getInternalName(), "getTypeInfo", "()Ljet/typeinfo/TypeInfo;"); + v.invokeinterface(TYPE_JET_OBJECT.getInternalName(), "getTypeInfo", "()Ljet/TypeInfo;"); } } else { @@ -2656,11 +2656,11 @@ If finally block is present, its last expression is the value of try expression. descriptor = CodegenUtil.getOuterClassDescriptor(descriptor); v.invokeinterface(TYPE_JET_OBJECT.getInternalName(), "getOuterObject", "()Ljet/JetObject;"); } - v.invokeinterface(TYPE_JET_OBJECT.getInternalName(), "getTypeInfo", "()Ljet/typeinfo/TypeInfo;"); + v.invokeinterface(TYPE_JET_OBJECT.getInternalName(), "getTypeInfo", "()Ljet/TypeInfo;"); } v.aconst(ownerType); v.iconst(typeParameterDescriptor.getIndex()); - v.invokevirtual("jet/typeinfo/TypeInfo", "getArgumentType", "(Ljava/lang/Class;I)Ljet/typeinfo/TypeInfo;"); + v.invokevirtual("jet/TypeInfo", "getArgumentType", "(Ljava/lang/Class;I)Ljet/TypeInfo;"); return; } throw new UnsupportedOperationException("don't know what this type parameter resolves to"); @@ -2780,7 +2780,7 @@ If finally block is present, its last expression is the value of try expression. final String className = "jet/Tuple" + entries.size(); Type tupleType = Type.getObjectType(className); - StringBuilder signature = new StringBuilder("(Ljet/typeinfo/TypeInfo;"); + StringBuilder signature = new StringBuilder("(Ljet/TypeInfo;"); for (int i = 0; i != entries.size(); ++i) { signature.append("Ljava/lang/Object;"); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 7acd5cba2b5..cc003056a60 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -500,7 +500,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if (CodegenUtil.requireTypeInfoConstructorArg(descriptor.getDefaultType()) && kind == OwnerKind.IMPLEMENTATION) { iv.load(0, JetTypeMapper.TYPE_OBJECT); iv.load(frameMap.getTypeInfoIndex(), JetTypeMapper.TYPE_OBJECT); - iv.invokevirtual(typeMapper.mapType(descriptor.getDefaultType(), OwnerKind.IMPLEMENTATION).getInternalName(), "$setTypeInfo", "(Ljet/typeinfo/TypeInfo;)V"); + iv.invokevirtual(typeMapper.mapType(descriptor.getDefaultType(), OwnerKind.IMPLEMENTATION).getInternalName(), "$setTypeInfo", "(Ljet/TypeInfo;)V"); } if(closure != null) { @@ -836,27 +836,27 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { JetType defaultType = descriptor.getDefaultType(); if(CodegenUtil.requireTypeInfoConstructorArg(defaultType)) { if(!CodegenUtil.hasDerivedTypeInfoField(defaultType)) { - v.newField(myClass, Opcodes.ACC_PROTECTED, "$typeInfo", "Ljet/typeinfo/TypeInfo;", null, null); + v.newField(myClass, Opcodes.ACC_PROTECTED, "$typeInfo", "Ljet/TypeInfo;", null, null); - MethodVisitor mv = v.newMethod(myClass, Opcodes.ACC_PUBLIC, "getTypeInfo", "()Ljet/typeinfo/TypeInfo;", null, null); + MethodVisitor mv = v.newMethod(myClass, Opcodes.ACC_PUBLIC, "getTypeInfo", "()Ljet/TypeInfo;", null, null); if (v.generateCode()) { mv.visitCode(); InstructionAdapter iv = new InstructionAdapter(mv); String owner = typeMapper.mapType(descriptor.getDefaultType(), OwnerKind.IMPLEMENTATION).getInternalName(); iv.load(0, JetTypeMapper.TYPE_OBJECT); - iv.getfield(owner, "$typeInfo", "Ljet/typeinfo/TypeInfo;"); + iv.getfield(owner, "$typeInfo", "Ljet/TypeInfo;"); iv.areturn(JetTypeMapper.TYPE_TYPEINFO); FunctionCodegen.endVisit(iv, "getTypeInfo", myClass); } - mv = v.newMethod(myClass, Opcodes.ACC_PROTECTED | Opcodes.ACC_FINAL, "$setTypeInfo", "(Ljet/typeinfo/TypeInfo;)V", null, null); + mv = v.newMethod(myClass, Opcodes.ACC_PROTECTED | Opcodes.ACC_FINAL, "$setTypeInfo", "(Ljet/TypeInfo;)V", null, null); if (v.generateCode()) { mv.visitCode(); InstructionAdapter iv = new InstructionAdapter(mv); String owner = typeMapper.mapType(descriptor.getDefaultType(), OwnerKind.IMPLEMENTATION).getInternalName(); iv.load(0, JetTypeMapper.TYPE_OBJECT); iv.load(1, JetTypeMapper.TYPE_OBJECT); - iv.putfield(owner, "$typeInfo", "Ljet/typeinfo/TypeInfo;"); + iv.putfield(owner, "$typeInfo", "Ljet/TypeInfo;"); mv.visitInsn(Opcodes.RETURN); FunctionCodegen.endVisit(iv, "$setTypeInfo", myClass); } @@ -869,26 +869,26 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } private void genGetStaticGetTypeInfoMethod() { - final MethodVisitor mv = v.newMethod(myClass, Opcodes.ACC_PUBLIC, "getTypeInfo", "()Ljet/typeinfo/TypeInfo;", null, null); + final MethodVisitor mv = v.newMethod(myClass, Opcodes.ACC_PUBLIC, "getTypeInfo", "()Ljet/TypeInfo;", null, null); if (v.generateCode()) { mv.visitCode(); InstructionAdapter v = new InstructionAdapter(mv); String owner = typeMapper.mapType(descriptor.getDefaultType(), OwnerKind.IMPLEMENTATION).getInternalName(); - v.getstatic(owner, "$staticTypeInfo", "Ljet/typeinfo/TypeInfo;"); + v.getstatic(owner, "$staticTypeInfo", "Ljet/TypeInfo;"); v.areturn(JetTypeMapper.TYPE_TYPEINFO); FunctionCodegen.endVisit(v, "getTypeInfo", myClass); } } private void staticTypeInfoField() { - v.newField(myClass, Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL | Opcodes.ACC_STATIC, "$staticTypeInfo", "Ljet/typeinfo/TypeInfo;", null, null); + v.newField(myClass, Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL | Opcodes.ACC_STATIC, "$staticTypeInfo", "Ljet/TypeInfo;", null, null); staticInitializerChunks.add(new CodeChunk() { @Override public void generate(InstructionAdapter v) { v.aconst(typeMapper.mapType(descriptor.getDefaultType(), OwnerKind.IMPLEMENTATION)); v.iconst(0); - v.invokestatic("jet/typeinfo/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z)Ljet/typeinfo/TypeInfo;"); - v.putstatic(typeMapper.mapType(descriptor.getDefaultType(), kind).getInternalName(), "$staticTypeInfo", "Ljet/typeinfo/TypeInfo;"); + v.invokestatic("jet/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z)Ljet/TypeInfo;"); + v.putstatic(typeMapper.mapType(descriptor.getDefaultType(), kind).getInternalName(), "$staticTypeInfo", "Ljet/TypeInfo;"); } }); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index b7130e122f2..a6ffef67541 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -3,7 +3,7 @@ package org.jetbrains.jet.codegen; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; import jet.JetObject; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import jet.typeinfo.TypeInfoProjection; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java index 78a768791e1..c083b4a639d 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java @@ -121,11 +121,11 @@ public class NamespaceCodegen { for(int index = 0; index != context.typeInfoConstantsCount; index++) { JetType type = context.reverseTypeInfoConstants.get(index); String fieldName = "$typeInfoCache$" + index; - v.newField(null, ACC_PRIVATE | ACC_STATIC | ACC_SYNTHETIC, fieldName, "Ljet/typeinfo/TypeInfo;", null, null); + v.newField(null, ACC_PRIVATE | ACC_STATIC | ACC_SYNTHETIC, fieldName, "Ljet/TypeInfo;", null, null); - MethodVisitor mmv = v.newMethod(null, ACC_PUBLIC | ACC_STATIC | ACC_SYNTHETIC, "$getCachedTypeInfo$" + index, "()Ljet/typeinfo/TypeInfo;", null, null); + MethodVisitor mmv = v.newMethod(null, ACC_PUBLIC | ACC_STATIC | ACC_SYNTHETIC, "$getCachedTypeInfo$" + index, "()Ljet/TypeInfo;", null, null); InstructionAdapter v = new InstructionAdapter(mmv); - v.visitFieldInsn(GETSTATIC, jvmClassName, fieldName, "Ljet/typeinfo/TypeInfo;"); + v.visitFieldInsn(GETSTATIC, jvmClassName, fieldName, "Ljet/TypeInfo;"); v.visitInsn(DUP); Label end = new Label(); v.visitJumpInsn(IFNONNULL, end); @@ -134,7 +134,7 @@ public class NamespaceCodegen { generateTypeInfo(context, v, type, state.getTypeMapper(), type); v.dup(); - v.visitFieldInsn(PUTSTATIC, jvmClassName, fieldName, "Ljet/typeinfo/TypeInfo;"); + v.visitFieldInsn(PUTSTATIC, jvmClassName, fieldName, "Ljet/TypeInfo;"); v.visitLabel(end); v.visitInsn(ARETURN); FunctionCodegen.endVisit(v, "type info method", namespace); @@ -145,21 +145,21 @@ public class NamespaceCodegen { private static void generateTypeInfo(CodegenContext context, InstructionAdapter v, JetType jetType, JetTypeMapper typeMapper, JetType root) { String knownTypeInfo = typeMapper.isKnownTypeInfo(jetType); if(knownTypeInfo != null) { - v.getstatic("jet/typeinfo/TypeInfo", knownTypeInfo, "Ljet/typeinfo/TypeInfo;"); + v.getstatic("jet/TypeInfo", knownTypeInfo, "Ljet/TypeInfo;"); return; } DeclarationDescriptor declarationDescriptor = jetType.getConstructor().getDeclarationDescriptor(); if(!jetType.equals(root) && jetType.getArguments().size() == 0 && !(declarationDescriptor instanceof JavaClassDescriptor) && !JetStandardClasses.getAny().equals(declarationDescriptor)) { // TODO: we need some better checks here - v.getstatic(typeMapper.mapType(jetType, OwnerKind.IMPLEMENTATION).getInternalName(), "$typeInfo", "Ljet/typeinfo/TypeInfo;"); + v.getstatic(typeMapper.mapType(jetType, OwnerKind.IMPLEMENTATION).getInternalName(), "$typeInfo", "Ljet/TypeInfo;"); return; } boolean hasUnsubstituted = TypeUtils.hasUnsubstitutedTypeParameters(jetType); if(!jetType.equals(root) && !hasUnsubstituted) { int typeInfoConstantIndex = context.getTypeInfoConstantIndex(jetType); - v.invokestatic(context.getNamespaceClassName(), "$getCachedTypeInfo$" + typeInfoConstantIndex, "()Ljet/typeinfo/TypeInfo;"); + v.invokestatic(context.getNamespaceClassName(), "$getCachedTypeInfo$" + typeInfoConstantIndex, "()Ljet/TypeInfo;"); return; } @@ -180,10 +180,10 @@ public class NamespaceCodegen { ExpressionCodegen.genTypeInfoToProjection(v, argument.getProjectionKind()); v.astore(JetTypeMapper.TYPE_OBJECT); } - v.invokestatic("jet/typeinfo/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z[Ljet/typeinfo/TypeInfoProjection;)Ljet/typeinfo/TypeInfo;"); + v.invokestatic("jet/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z[Ljet/typeinfo/TypeInfoProjection;)Ljet/TypeInfo;"); } else { - v.invokestatic("jet/typeinfo/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z)Ljet/typeinfo/TypeInfo;"); + v.invokestatic("jet/TypeInfo", "getTypeInfo", "(Ljava/lang/Class;Z)Ljet/TypeInfo;"); } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java index 8fcd6d57500..60b7c7ec125 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java @@ -29,7 +29,7 @@ public class ArrayIterator implements IntrinsicMethod { JetStandardLibrary standardLibrary = codegen.getState().getStandardLibrary(); if(containingDeclaration.equals(standardLibrary.getArray())) { codegen.generateTypeInfo(funDescriptor.getReturnType().getArguments().get(0).getType(), null); - v.invokestatic("jet/runtime/ArrayIterator", "iterator", "([Ljava/lang/Object;Ljet/typeinfo/TypeInfo;)Ljet/Iterator;"); + v.invokestatic("jet/runtime/ArrayIterator", "iterator", "([Ljava/lang/Object;Ljet/TypeInfo;)Ljet/Iterator;"); return StackValue.onStack(JetTypeMapper.TYPE_ITERATOR); } else if(containingDeclaration.equals(standardLibrary.getByteArrayClass())) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ValueTypeInfo.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ValueTypeInfo.java index 73a23e605e8..e23574d29f7 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ValueTypeInfo.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ValueTypeInfo.java @@ -17,7 +17,7 @@ public class ValueTypeInfo implements IntrinsicMethod { @Override public StackValue generate(ExpressionCodegen codegen, InstructionAdapter v, Type expectedType, PsiElement element, List arguments, StackValue receiver) { codegen.gen(arguments.get(0), JetTypeMapper.TYPE_JET_OBJECT); - v.invokeinterface(JetTypeMapper.TYPE_JET_OBJECT.getInternalName(), "getTypeInfo", "()Ljet/typeinfo/TypeInfo;"); + v.invokeinterface(JetTypeMapper.TYPE_JET_OBJECT.getInternalName(), "getTypeInfo", "()Ljet/TypeInfo;"); return StackValue.onStack(JetTypeMapper.TYPE_TYPEINFO); } } diff --git a/compiler/frontend/src/jet/Library.jet b/compiler/frontend/src/jet/Library.jet index e6a78e088a5..090b3b47853 100644 --- a/compiler/frontend/src/jet/Library.jet +++ b/compiler/frontend/src/jet/Library.jet @@ -1,6 +1,6 @@ package jet -package typeinfo { +//package typeinfo { class TypeInfo { fun isSubtypeOf(other : TypeInfo<*>) : Boolean fun isInstance(obj : Any?) : Boolean @@ -8,31 +8,7 @@ package typeinfo { fun typeinfo() : TypeInfo fun typeinfo(expression : T) : TypeInfo -} - -package io { - fun print(message : Any?) - fun print(message : Int) - fun print(message : Long) - fun print(message : Byte) - fun print(message : Short) - fun print(message : Char) - fun print(message : Boolean) - fun print(message : Float) - fun print(message : Double) - - fun println(message : Any?) - fun println(message : Int) - fun println(message : Long) - fun println(message : Byte) - fun println(message : Short) - fun println(message : Char) - fun println(message : Boolean) - fun println(message : Float) - fun println(message : Double) - - fun readLine() : String? -} +//} fun Any.synchronized(block : () -> R) : R diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java index 0b99cbe5f69..2edffdf51ea 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardLibrary.java @@ -7,10 +7,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; -import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.*; +import org.jetbrains.jet.lang.resolve.AnalyzingUtils; +import org.jetbrains.jet.lang.resolve.BindingTraceContext; +import org.jetbrains.jet.lang.resolve.TopDownAnalyzer; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; @@ -120,7 +121,6 @@ public class JetStandardLibrary { private JetType tuple0Type; private JetType nullableStringType; - private NamespaceDescriptor typeInfoNamespace; private Set typeInfoFunction; private JetStandardLibrary(@NotNull Project project) { @@ -168,9 +168,9 @@ public class JetStandardLibrary { this.arrayClass = (ClassDescriptor) libraryScope.getClassifier("Array"); this.iterableClass = (ClassDescriptor) libraryScope.getClassifier("Iterable"); - typeInfoNamespace = libraryScope.getNamespace("typeinfo"); - this.typeInfoClass = (ClassDescriptor) typeInfoNamespace.getMemberScope().getClassifier("TypeInfo"); - typeInfoFunction = typeInfoNamespace.getMemberScope().getFunctions("typeinfo"); +// typeInfoNamespace = libraryScope.getNamespace("typeinfo"); + this.typeInfoClass = (ClassDescriptor) libraryScope.getClassifier("TypeInfo"); + this.typeInfoFunction = libraryScope.getFunctions("typeinfo"); this.byteType = new JetTypeImpl(getByte()); this.charType = new JetTypeImpl(getChar()); @@ -297,11 +297,11 @@ public class JetStandardLibrary { return iterableClass; } - public NamespaceDescriptor getTypeInfoNamespace() { - initStdClasses(); - return typeInfoNamespace; - } - +// public NamespaceDescriptor getTypeInfoNamespace() { +// initStdClasses(); +// return typeInfoNamespace; +// } +// public ClassDescriptor getTypeInfo() { initStdClasses(); return typeInfoClass; diff --git a/compiler/testData/codegen/typeInfo/oneArgTypeinfo.jet b/compiler/testData/codegen/typeInfo/oneArgTypeinfo.jet index 4c75a371da9..a3d6a3ed5b7 100644 --- a/compiler/testData/codegen/typeInfo/oneArgTypeinfo.jet +++ b/compiler/testData/codegen/typeInfo/oneArgTypeinfo.jet @@ -1,7 +1,7 @@ class Point() { } -fun foo() : typeinfo.TypeInfo { +fun foo() : TypeInfo { val p = Point(); - return typeinfo.typeinfo(p); + return typeinfo(p); } diff --git a/compiler/testData/compileJavaAgainstKotlin/class/Simple.java b/compiler/testData/compileJavaAgainstKotlin/class/Simple.java index 0a211b69295..7cf763e7be3 100644 --- a/compiler/testData/compileJavaAgainstKotlin/class/Simple.java +++ b/compiler/testData/compileJavaAgainstKotlin/class/Simple.java @@ -1,7 +1,7 @@ class Simple { { - jet.typeinfo.TypeInfo blabla = null; + jet.TypeInfo blabla = null; new Impossible(blabla); } } diff --git a/compiler/testData/compileJavaAgainstKotlin/method/GenericArray.java b/compiler/testData/compileJavaAgainstKotlin/method/GenericArray.java index 2ed0facc0ef..cdd96fed0af 100644 --- a/compiler/testData/compileJavaAgainstKotlin/method/GenericArray.java +++ b/compiler/testData/compileJavaAgainstKotlin/method/GenericArray.java @@ -1,7 +1,7 @@ class GenericArray { public static void ggff() { - jet.typeinfo.TypeInfo noise = null; + jet.TypeInfo noise = null; String[] s = namespace.ffgg(noise, new String[0]); } } diff --git a/compiler/testData/compileJavaAgainstKotlin/method/ListOfT.java b/compiler/testData/compileJavaAgainstKotlin/method/ListOfT.java index 571498c8eb9..ae771e4b15c 100644 --- a/compiler/testData/compileJavaAgainstKotlin/method/ListOfT.java +++ b/compiler/testData/compileJavaAgainstKotlin/method/ListOfT.java @@ -4,7 +4,7 @@ import java.util.ArrayList; class ListOfT { public static void check() { - jet.typeinfo.TypeInfo nobodyCaresAboutTypeinfo = null; + jet.TypeInfo nobodyCaresAboutTypeinfo = null; List list = new ArrayList(); List r = namespace.listOfT(nobodyCaresAboutTypeinfo, list); } diff --git a/compiler/testData/compileJavaAgainstKotlin/method/MapOfKString.java b/compiler/testData/compileJavaAgainstKotlin/method/MapOfKString.java index d5624e44fd7..245b7660050 100644 --- a/compiler/testData/compileJavaAgainstKotlin/method/MapOfKString.java +++ b/compiler/testData/compileJavaAgainstKotlin/method/MapOfKString.java @@ -4,7 +4,7 @@ import java.math.BigDecimal; class MapOfKString { public static void gfgdgfg() { - jet.typeinfo.TypeInfo useless = null; + jet.TypeInfo useless = null; Map map = new HashMap(); diff --git a/compiler/testData/compileJavaAgainstKotlin/method/QExtendsListString.java b/compiler/testData/compileJavaAgainstKotlin/method/QExtendsListString.java index 72b7170231a..a684c22d419 100644 --- a/compiler/testData/compileJavaAgainstKotlin/method/QExtendsListString.java +++ b/compiler/testData/compileJavaAgainstKotlin/method/QExtendsListString.java @@ -3,6 +3,6 @@ class Question { // id2 is to prevent java type parameter type inference static T id2(T p) { return p; } { - java.util.List s = id2(namespace.id((jet.typeinfo.TypeInfo) null, null)); + java.util.List s = id2(namespace.id((jet.TypeInfo) null, null)); } } diff --git a/compiler/testData/compileJavaAgainstKotlin/method/QExtendsString.java b/compiler/testData/compileJavaAgainstKotlin/method/QExtendsString.java index f525b5923a5..e5ef71f0d4f 100644 --- a/compiler/testData/compileJavaAgainstKotlin/method/QExtendsString.java +++ b/compiler/testData/compileJavaAgainstKotlin/method/QExtendsString.java @@ -3,6 +3,6 @@ class Question { // id2 is to prevent java type parameter type inference static T id2(T p) { return p; } { - String s = id2(namespace.id((jet.typeinfo.TypeInfo) null, null)); + String s = id2(namespace.id((jet.TypeInfo) null, null)); } } diff --git a/compiler/testData/diagnostics/tests/regressions/kt716.jet b/compiler/testData/diagnostics/tests/regressions/kt716.jet index 5e06695ad54..ec69618ad50 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt716.jet +++ b/compiler/testData/diagnostics/tests/regressions/kt716.jet @@ -1,12 +1,12 @@ // KT-716 Type inference failed // +JDK -fun typeinfo.TypeInfo.getJavaClass() : java.lang.Class { +fun TypeInfo.getJavaClass() : java.lang.Class { val t : java.lang.Object = this as java.lang.Object return t.getClass() as java.lang.Class // inferred type is Object but Serializable was expected } -fun getJavaClass() = typeinfo.typeinfo.getJavaClass() +fun getJavaClass() = typeinfo.getJavaClass() fun main(args : Array) { System.out?.println(getJavaClass) diff --git a/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java index 89b4e450d8a..787ea79b13f 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java @@ -18,7 +18,7 @@ public class ClassGenTest extends CodegenTestCase { final Class aClass = loadClass("SimpleClass", generateClassesInFile()); final Method[] methods = aClass.getDeclaredMethods(); // public int SimpleClass.foo() - // public jet.typeinfo.TypeInfo SimpleClass.getTypeInfo() + // public jet.TypeInfo SimpleClass.getTypeInfo() assertEquals(2, methods.length); } diff --git a/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java index 968a5647f20..fc4f3fa3249 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java @@ -3,7 +3,7 @@ package org.jetbrains.jet.codegen; import jet.IntRange; import jet.Tuple2; import jet.Tuple4; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import java.awt.*; import java.lang.reflect.InvocationTargetException; diff --git a/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java b/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java index 3949cf9b8c6..05a950fba5a 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java @@ -2,7 +2,7 @@ package org.jetbrains.jet.codegen; import jet.JetObject; import jet.TypeCastException; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import java.lang.reflect.Method; @@ -31,7 +31,7 @@ public class TypeInfoTest extends CodegenTestCase { } public void testNoArgTypeinfo() throws Exception { - loadText("fun foo() = typeinfo.typeinfo()"); + loadText("fun foo() = typeinfo()"); Method foo = generateFunction(); TypeInfo typeInfo = (TypeInfo) foo.invoke(null); assertSame(TypeInfo.INT_TYPE_INFO, typeInfo); diff --git a/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index 2373b2a871d..83d353c6931 100644 --- a/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -90,8 +90,8 @@ public class JetTypeCheckerTest extends JetLiteFixture { } public void testTypeInfo() throws Exception { - assertType("typeinfo.typeinfo", "typeinfo.TypeInfo"); - assertType("typeinfo.typeinfo>", "typeinfo.TypeInfo>"); + assertType("typeinfo", "TypeInfo"); + assertType("typeinfo>", "TypeInfo>"); } public void testJumps() throws Exception { diff --git a/grammar/src/toplevel.grm b/grammar/src/toplevel.grm index be7528ced86..4f193f05fab 100644 --- a/grammar/src/toplevel.grm +++ b/grammar/src/toplevel.grm @@ -16,15 +16,15 @@ script ; preamble - : namespaceHeader? import* + : packageHeader? import* ; -namespaceHeader - : modifiers "namespace" SimpleName{"."} SEMI? +packageHeader + : modifiers "package" SimpleName{"."} SEMI? ; import - : "import" ("namespace" ".")? SimpleName{"."} ("." "*" | "as" SimpleName)? SEMI? + : "import" ("package" ".")? SimpleName{"."} ("." "*" | "as" SimpleName)? SEMI? ; /** @@ -32,7 +32,7 @@ bq. See [Imports|Namespaces#Imports] */ toplevelObject - : namespace + : package : class : object : function @@ -40,8 +40,8 @@ toplevelObject : typedef ; -namespace - : "namespace" SimpleName{"."} "{" +package + : "package" SimpleName{"."} "{" import* toplevelObject* "}" diff --git a/stdlib/src/jet/BooleanIterator.java b/stdlib/src/jet/BooleanIterator.java index a242e61274d..d5f16a1b41b 100644 --- a/stdlib/src/jet/BooleanIterator.java +++ b/stdlib/src/jet/BooleanIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/ByteIterator.java b/stdlib/src/jet/ByteIterator.java index a21be0e0e42..6ac06974138 100644 --- a/stdlib/src/jet/ByteIterator.java +++ b/stdlib/src/jet/ByteIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/CharIterator.java b/stdlib/src/jet/CharIterator.java index 27034e010a4..13e0440fb08 100644 --- a/stdlib/src/jet/CharIterator.java +++ b/stdlib/src/jet/CharIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/DefaultJetObject.java b/stdlib/src/jet/DefaultJetObject.java index 736606a70d6..fc3257993ff 100644 --- a/stdlib/src/jet/DefaultJetObject.java +++ b/stdlib/src/jet/DefaultJetObject.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/DoubleIterator.java b/stdlib/src/jet/DoubleIterator.java index 5f01ae5eb5a..724d24643a9 100644 --- a/stdlib/src/jet/DoubleIterator.java +++ b/stdlib/src/jet/DoubleIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/ExtensionFunction0.java b/stdlib/src/jet/ExtensionFunction0.java index 170f5c4bd69..5a7fef5e036 100644 --- a/stdlib/src/jet/ExtensionFunction0.java +++ b/stdlib/src/jet/ExtensionFunction0.java @@ -3,8 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; - public abstract class ExtensionFunction0 extends DefaultJetObject { protected ExtensionFunction0(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction1.java b/stdlib/src/jet/ExtensionFunction1.java index 3036473a0f6..c9ae25cd37a 100644 --- a/stdlib/src/jet/ExtensionFunction1.java +++ b/stdlib/src/jet/ExtensionFunction1.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction1 extends DefaultJetObject { protected ExtensionFunction1(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction10.java b/stdlib/src/jet/ExtensionFunction10.java index a840c84675c..fa6cedf927a 100644 --- a/stdlib/src/jet/ExtensionFunction10.java +++ b/stdlib/src/jet/ExtensionFunction10.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction10 extends DefaultJetObject { protected ExtensionFunction10(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction11.java b/stdlib/src/jet/ExtensionFunction11.java index 161a2635dfc..d1e9b5a9ccc 100644 --- a/stdlib/src/jet/ExtensionFunction11.java +++ b/stdlib/src/jet/ExtensionFunction11.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction11 extends DefaultJetObject { protected ExtensionFunction11(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction12.java b/stdlib/src/jet/ExtensionFunction12.java index 286b76250f8..2d7815f7984 100644 --- a/stdlib/src/jet/ExtensionFunction12.java +++ b/stdlib/src/jet/ExtensionFunction12.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction12 extends DefaultJetObject { protected ExtensionFunction12(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction13.java b/stdlib/src/jet/ExtensionFunction13.java index 6e498216343..0f4c8e2c4aa 100644 --- a/stdlib/src/jet/ExtensionFunction13.java +++ b/stdlib/src/jet/ExtensionFunction13.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction13 extends DefaultJetObject { protected ExtensionFunction13(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction14.java b/stdlib/src/jet/ExtensionFunction14.java index 129899f7d23..e541b7fef7a 100644 --- a/stdlib/src/jet/ExtensionFunction14.java +++ b/stdlib/src/jet/ExtensionFunction14.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction14 extends DefaultJetObject { protected ExtensionFunction14(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction15.java b/stdlib/src/jet/ExtensionFunction15.java index 650b4597b3c..6944591db31 100644 --- a/stdlib/src/jet/ExtensionFunction15.java +++ b/stdlib/src/jet/ExtensionFunction15.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction15 extends DefaultJetObject { protected ExtensionFunction15(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction16.java b/stdlib/src/jet/ExtensionFunction16.java index 782911bb1b6..508cb4aaac9 100644 --- a/stdlib/src/jet/ExtensionFunction16.java +++ b/stdlib/src/jet/ExtensionFunction16.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction16 extends DefaultJetObject { protected ExtensionFunction16(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction17.java b/stdlib/src/jet/ExtensionFunction17.java index 9a690ecc852..a9708c3e841 100644 --- a/stdlib/src/jet/ExtensionFunction17.java +++ b/stdlib/src/jet/ExtensionFunction17.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction17 extends DefaultJetObject { protected ExtensionFunction17(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction18.java b/stdlib/src/jet/ExtensionFunction18.java index ed7fed24fdc..8ad0ba9df38 100644 --- a/stdlib/src/jet/ExtensionFunction18.java +++ b/stdlib/src/jet/ExtensionFunction18.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction18 extends DefaultJetObject { protected ExtensionFunction18(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction19.java b/stdlib/src/jet/ExtensionFunction19.java index 2db3e66aaa2..88b9a497ed8 100644 --- a/stdlib/src/jet/ExtensionFunction19.java +++ b/stdlib/src/jet/ExtensionFunction19.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction19 extends DefaultJetObject { protected ExtensionFunction19(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction2.java b/stdlib/src/jet/ExtensionFunction2.java index bf5ccd43d4e..ccf4fa6ee87 100644 --- a/stdlib/src/jet/ExtensionFunction2.java +++ b/stdlib/src/jet/ExtensionFunction2.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction2 extends DefaultJetObject { protected ExtensionFunction2(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction20.java b/stdlib/src/jet/ExtensionFunction20.java index f3466d13499..dcafb46604c 100644 --- a/stdlib/src/jet/ExtensionFunction20.java +++ b/stdlib/src/jet/ExtensionFunction20.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction20 extends DefaultJetObject { protected ExtensionFunction20(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction21.java b/stdlib/src/jet/ExtensionFunction21.java index 43f7bb1bde0..106467fd8a6 100644 --- a/stdlib/src/jet/ExtensionFunction21.java +++ b/stdlib/src/jet/ExtensionFunction21.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction21 extends DefaultJetObject { protected ExtensionFunction21(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction22.java b/stdlib/src/jet/ExtensionFunction22.java index 04296ce8b0e..b66d33df5bd 100644 --- a/stdlib/src/jet/ExtensionFunction22.java +++ b/stdlib/src/jet/ExtensionFunction22.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction22 extends DefaultJetObject { protected ExtensionFunction22(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction3.java b/stdlib/src/jet/ExtensionFunction3.java index 8c5518f8c4c..9f7ddc6a4d3 100644 --- a/stdlib/src/jet/ExtensionFunction3.java +++ b/stdlib/src/jet/ExtensionFunction3.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction3 extends DefaultJetObject { protected ExtensionFunction3(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction4.java b/stdlib/src/jet/ExtensionFunction4.java index 67f85720049..224c68234d7 100644 --- a/stdlib/src/jet/ExtensionFunction4.java +++ b/stdlib/src/jet/ExtensionFunction4.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction4 extends DefaultJetObject { protected ExtensionFunction4(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction5.java b/stdlib/src/jet/ExtensionFunction5.java index 702db6aa429..7e1dd82f6f2 100644 --- a/stdlib/src/jet/ExtensionFunction5.java +++ b/stdlib/src/jet/ExtensionFunction5.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction5 extends DefaultJetObject { protected ExtensionFunction5(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction6.java b/stdlib/src/jet/ExtensionFunction6.java index b5be7b846a3..61305b383fb 100644 --- a/stdlib/src/jet/ExtensionFunction6.java +++ b/stdlib/src/jet/ExtensionFunction6.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction6 extends DefaultJetObject { protected ExtensionFunction6(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction7.java b/stdlib/src/jet/ExtensionFunction7.java index 2e854e49b25..2ece04fc69b 100644 --- a/stdlib/src/jet/ExtensionFunction7.java +++ b/stdlib/src/jet/ExtensionFunction7.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction7 extends DefaultJetObject { protected ExtensionFunction7(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction8.java b/stdlib/src/jet/ExtensionFunction8.java index d633773ea78..441aa2eea5c 100644 --- a/stdlib/src/jet/ExtensionFunction8.java +++ b/stdlib/src/jet/ExtensionFunction8.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction8 extends DefaultJetObject { protected ExtensionFunction8(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/ExtensionFunction9.java b/stdlib/src/jet/ExtensionFunction9.java index 1c65840d5ae..37f907bef36 100644 --- a/stdlib/src/jet/ExtensionFunction9.java +++ b/stdlib/src/jet/ExtensionFunction9.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class ExtensionFunction9 extends DefaultJetObject { protected ExtensionFunction9(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/FloatIterator.java b/stdlib/src/jet/FloatIterator.java index 789fd5ae1a0..ffebd76ed93 100644 --- a/stdlib/src/jet/FloatIterator.java +++ b/stdlib/src/jet/FloatIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/Function0.java b/stdlib/src/jet/Function0.java index 81d32b0b281..011dc2df0d4 100644 --- a/stdlib/src/jet/Function0.java +++ b/stdlib/src/jet/Function0.java @@ -3,13 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintStream; - public abstract class Function0 extends DefaultJetObject { protected Function0(TypeInfo typeInfo) { super(typeInfo); @@ -30,7 +23,7 @@ public abstract class Function0 extends DefaultJetObject { // " */\n" + // "package jet;\n" + // "\n" + -// "import jet.typeinfo.TypeInfo;\n" + +// "import jet.TypeInfo;\n" + // "public abstract class Function" + i + "<"); // for(int k = 1; k <= i; k++) // out.print("D" + k + ", "); @@ -61,7 +54,7 @@ public abstract class Function0 extends DefaultJetObject { // " */\n" + // "package jet;\n" + // "\n" + -// "import jet.typeinfo.TypeInfo;\n" + +// "import jet.TypeInfo;\n" + // "public abstract class ExtensionFunction" + i + " extends DefaultJetObject { protected Function1(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function10.java b/stdlib/src/jet/Function10.java index 3d5633fe157..4102fdfca0b 100644 --- a/stdlib/src/jet/Function10.java +++ b/stdlib/src/jet/Function10.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function10 extends DefaultJetObject { protected Function10(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function11.java b/stdlib/src/jet/Function11.java index 23ae003d045..1a19a20e4eb 100644 --- a/stdlib/src/jet/Function11.java +++ b/stdlib/src/jet/Function11.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function11 extends DefaultJetObject { protected Function11(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function12.java b/stdlib/src/jet/Function12.java index 5e7d39422c2..1a7b4dd2426 100644 --- a/stdlib/src/jet/Function12.java +++ b/stdlib/src/jet/Function12.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function12 extends DefaultJetObject { protected Function12(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function13.java b/stdlib/src/jet/Function13.java index fe41e408dc6..248c2f08de6 100644 --- a/stdlib/src/jet/Function13.java +++ b/stdlib/src/jet/Function13.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function13 extends DefaultJetObject { protected Function13(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function14.java b/stdlib/src/jet/Function14.java index 9c678ede552..9286ab6ed9e 100644 --- a/stdlib/src/jet/Function14.java +++ b/stdlib/src/jet/Function14.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function14 extends DefaultJetObject { protected Function14(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function15.java b/stdlib/src/jet/Function15.java index 9bbc6b85394..20cba102f9d 100644 --- a/stdlib/src/jet/Function15.java +++ b/stdlib/src/jet/Function15.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function15 extends DefaultJetObject { protected Function15(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function16.java b/stdlib/src/jet/Function16.java index 7e401a94242..0340f729d2c 100644 --- a/stdlib/src/jet/Function16.java +++ b/stdlib/src/jet/Function16.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function16 extends DefaultJetObject { protected Function16(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function17.java b/stdlib/src/jet/Function17.java index 2c75ba63d76..46477ce96b9 100644 --- a/stdlib/src/jet/Function17.java +++ b/stdlib/src/jet/Function17.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function17 extends DefaultJetObject { protected Function17(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function18.java b/stdlib/src/jet/Function18.java index 1c95e9e8e39..8ccb50d7750 100644 --- a/stdlib/src/jet/Function18.java +++ b/stdlib/src/jet/Function18.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function18 extends DefaultJetObject { protected Function18(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function19.java b/stdlib/src/jet/Function19.java index 8f8d5a030a3..ad685163d33 100644 --- a/stdlib/src/jet/Function19.java +++ b/stdlib/src/jet/Function19.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function19 extends DefaultJetObject { protected Function19(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function2.java b/stdlib/src/jet/Function2.java index 21f32978e29..8d6aa3c21ad 100644 --- a/stdlib/src/jet/Function2.java +++ b/stdlib/src/jet/Function2.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function2 extends DefaultJetObject { protected Function2(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function20.java b/stdlib/src/jet/Function20.java index cdf5b11a16e..3079e033847 100644 --- a/stdlib/src/jet/Function20.java +++ b/stdlib/src/jet/Function20.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function20 extends DefaultJetObject { protected Function20(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function21.java b/stdlib/src/jet/Function21.java index c213b6079b7..866f534e945 100644 --- a/stdlib/src/jet/Function21.java +++ b/stdlib/src/jet/Function21.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function21 extends DefaultJetObject { protected Function21(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function22.java b/stdlib/src/jet/Function22.java index 6aacfa26e84..c4e6bf87465 100644 --- a/stdlib/src/jet/Function22.java +++ b/stdlib/src/jet/Function22.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function22 extends DefaultJetObject { protected Function22(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function3.java b/stdlib/src/jet/Function3.java index ffecf8c9ad1..025d115a982 100644 --- a/stdlib/src/jet/Function3.java +++ b/stdlib/src/jet/Function3.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function3 extends DefaultJetObject { protected Function3(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function4.java b/stdlib/src/jet/Function4.java index 31fc584ad8f..f7733cc8b87 100644 --- a/stdlib/src/jet/Function4.java +++ b/stdlib/src/jet/Function4.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function4 extends DefaultJetObject { protected Function4(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function5.java b/stdlib/src/jet/Function5.java index 85655ac1e7e..37bcf03a353 100644 --- a/stdlib/src/jet/Function5.java +++ b/stdlib/src/jet/Function5.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function5 extends DefaultJetObject { protected Function5(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function6.java b/stdlib/src/jet/Function6.java index bf4dfadf09d..3ec4c47a281 100644 --- a/stdlib/src/jet/Function6.java +++ b/stdlib/src/jet/Function6.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function6 extends DefaultJetObject { protected Function6(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function7.java b/stdlib/src/jet/Function7.java index ef3691024d4..ff09d5643a2 100644 --- a/stdlib/src/jet/Function7.java +++ b/stdlib/src/jet/Function7.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function7 extends DefaultJetObject { protected Function7(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function8.java b/stdlib/src/jet/Function8.java index 0b261a57dfb..06f90282138 100644 --- a/stdlib/src/jet/Function8.java +++ b/stdlib/src/jet/Function8.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function8 extends DefaultJetObject { protected Function8(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/Function9.java b/stdlib/src/jet/Function9.java index 5334531aa97..ce7c25fd392 100644 --- a/stdlib/src/jet/Function9.java +++ b/stdlib/src/jet/Function9.java @@ -3,7 +3,6 @@ */ package jet; -import jet.typeinfo.TypeInfo; public abstract class Function9 extends DefaultJetObject { protected Function9(TypeInfo typeInfo) { super(typeInfo); diff --git a/stdlib/src/jet/IntIterator.java b/stdlib/src/jet/IntIterator.java index 1e1dda6fbd7..9090975735a 100644 --- a/stdlib/src/jet/IntIterator.java +++ b/stdlib/src/jet/IntIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/IntRange.java b/stdlib/src/jet/IntRange.java index 7866919f9fe..2fa3d5f422d 100644 --- a/stdlib/src/jet/IntRange.java +++ b/stdlib/src/jet/IntRange.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public final class IntRange implements Range, IntIterable, JetObject { private final static TypeInfo typeInfo = TypeInfo.getTypeInfo(IntRange.class, false); diff --git a/stdlib/src/jet/JetObject.java b/stdlib/src/jet/JetObject.java index 96f17a323b6..69b427bf596 100644 --- a/stdlib/src/jet/JetObject.java +++ b/stdlib/src/jet/JetObject.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author abreslav * @author alex.tkachman diff --git a/stdlib/src/jet/LongIterator.java b/stdlib/src/jet/LongIterator.java index 2827adabf9a..7f42099e6cb 100644 --- a/stdlib/src/jet/LongIterator.java +++ b/stdlib/src/jet/LongIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/LongRange.java b/stdlib/src/jet/LongRange.java index dea5c70402e..7f7554c8faf 100644 --- a/stdlib/src/jet/LongRange.java +++ b/stdlib/src/jet/LongRange.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public final class LongRange implements Range, LongIterable, JetObject { private final static TypeInfo typeInfo = TypeInfo.getTypeInfo(IntRange.class, false); diff --git a/stdlib/src/jet/ShortIterator.java b/stdlib/src/jet/ShortIterator.java index 8f383faee63..5321ff84d3b 100644 --- a/stdlib/src/jet/ShortIterator.java +++ b/stdlib/src/jet/ShortIterator.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/Tuple0.java b/stdlib/src/jet/Tuple0.java index a4823e1dd5e..776da68c91d 100644 --- a/stdlib/src/jet/Tuple0.java +++ b/stdlib/src/jet/Tuple0.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - /** * @author alex.tkachman */ diff --git a/stdlib/src/jet/Tuple1.java b/stdlib/src/jet/Tuple1.java index c50550d258b..197726fd3ca 100644 --- a/stdlib/src/jet/Tuple1.java +++ b/stdlib/src/jet/Tuple1.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple1 extends DefaultJetObject { public final T1 _1; diff --git a/stdlib/src/jet/Tuple10.java b/stdlib/src/jet/Tuple10.java index 065ef8888ca..5547a9a90c4 100644 --- a/stdlib/src/jet/Tuple10.java +++ b/stdlib/src/jet/Tuple10.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple10 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple11.java b/stdlib/src/jet/Tuple11.java index dcf69b1920a..13f0b36f776 100644 --- a/stdlib/src/jet/Tuple11.java +++ b/stdlib/src/jet/Tuple11.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple11 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple12.java b/stdlib/src/jet/Tuple12.java index a0a55e4efc6..7d66a5ca466 100644 --- a/stdlib/src/jet/Tuple12.java +++ b/stdlib/src/jet/Tuple12.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple12 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple13.java b/stdlib/src/jet/Tuple13.java index fff29fd6840..fb341787cfc 100644 --- a/stdlib/src/jet/Tuple13.java +++ b/stdlib/src/jet/Tuple13.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple13 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple14.java b/stdlib/src/jet/Tuple14.java index ed43c45f96d..e5c33981cc8 100644 --- a/stdlib/src/jet/Tuple14.java +++ b/stdlib/src/jet/Tuple14.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple14 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple15.java b/stdlib/src/jet/Tuple15.java index 69fb9b15448..0a08fc292b5 100644 --- a/stdlib/src/jet/Tuple15.java +++ b/stdlib/src/jet/Tuple15.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple15 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple16.java b/stdlib/src/jet/Tuple16.java index cf8a0b8a57b..43bf5f2876c 100644 --- a/stdlib/src/jet/Tuple16.java +++ b/stdlib/src/jet/Tuple16.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple16 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple17.java b/stdlib/src/jet/Tuple17.java index e496859520f..f94df336ff1 100644 --- a/stdlib/src/jet/Tuple17.java +++ b/stdlib/src/jet/Tuple17.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple17 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple18.java b/stdlib/src/jet/Tuple18.java index 20f67843619..51619c1b6f3 100644 --- a/stdlib/src/jet/Tuple18.java +++ b/stdlib/src/jet/Tuple18.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple18 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple19.java b/stdlib/src/jet/Tuple19.java index a82ad2aa4a3..59a74a87623 100644 --- a/stdlib/src/jet/Tuple19.java +++ b/stdlib/src/jet/Tuple19.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple19 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple2.java b/stdlib/src/jet/Tuple2.java index 914a3905b89..7c4fb350af8 100644 --- a/stdlib/src/jet/Tuple2.java +++ b/stdlib/src/jet/Tuple2.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple2 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple20.java b/stdlib/src/jet/Tuple20.java index 21bc043be64..842e62a2d5b 100644 --- a/stdlib/src/jet/Tuple20.java +++ b/stdlib/src/jet/Tuple20.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple20 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple21.java b/stdlib/src/jet/Tuple21.java index 4d7739dbc13..1f830b9761e 100644 --- a/stdlib/src/jet/Tuple21.java +++ b/stdlib/src/jet/Tuple21.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple21 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple22.java b/stdlib/src/jet/Tuple22.java index 603cec2a74f..3211dba60bd 100644 --- a/stdlib/src/jet/Tuple22.java +++ b/stdlib/src/jet/Tuple22.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple22 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple3.java b/stdlib/src/jet/Tuple3.java index b368556be3e..202c1b0a6ae 100644 --- a/stdlib/src/jet/Tuple3.java +++ b/stdlib/src/jet/Tuple3.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple3 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple4.java b/stdlib/src/jet/Tuple4.java index 743543503ef..7efeacbfd62 100644 --- a/stdlib/src/jet/Tuple4.java +++ b/stdlib/src/jet/Tuple4.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple4 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple5.java b/stdlib/src/jet/Tuple5.java index 8ff54f422b6..4b18ad0c04e 100644 --- a/stdlib/src/jet/Tuple5.java +++ b/stdlib/src/jet/Tuple5.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple5 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple6.java b/stdlib/src/jet/Tuple6.java index 2b855a01fe8..d36eaddec96 100644 --- a/stdlib/src/jet/Tuple6.java +++ b/stdlib/src/jet/Tuple6.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple6 extends DefaultJetObject { public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple7.java b/stdlib/src/jet/Tuple7.java index baf95a8339f..e4b389c3033 100644 --- a/stdlib/src/jet/Tuple7.java +++ b/stdlib/src/jet/Tuple7.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple7 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple8.java b/stdlib/src/jet/Tuple8.java index f71bf7593be..6b225d64792 100644 --- a/stdlib/src/jet/Tuple8.java +++ b/stdlib/src/jet/Tuple8.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple8 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/Tuple9.java b/stdlib/src/jet/Tuple9.java index 7bc9da9ef7e..47e6338b641 100644 --- a/stdlib/src/jet/Tuple9.java +++ b/stdlib/src/jet/Tuple9.java @@ -1,7 +1,5 @@ package jet; -import jet.typeinfo.TypeInfo; - public class Tuple9 extends DefaultJetObject{ public final T1 _1; public final T2 _2; diff --git a/stdlib/src/jet/typeinfo/TypeInfo.java b/stdlib/src/jet/TypeInfo.java similarity index 98% rename from stdlib/src/jet/typeinfo/TypeInfo.java rename to stdlib/src/jet/TypeInfo.java index 379bf2dc245..69b6b860108 100644 --- a/stdlib/src/jet/typeinfo/TypeInfo.java +++ b/stdlib/src/jet/TypeInfo.java @@ -1,7 +1,7 @@ -package jet.typeinfo; +package jet; -import jet.JetObject; -import jet.Tuple0; +import jet.typeinfo.TypeInfoProjection; +import jet.typeinfo.TypeInfoVariance; import org.jetbrains.jet.rt.TypeInfoImpl; import org.jetbrains.jet.rt.TypeInfoProjectionImpl; diff --git a/stdlib/src/jet/runtime/ArrayIterator.java b/stdlib/src/jet/runtime/ArrayIterator.java index 0b05941e507..3e4795ab697 100644 --- a/stdlib/src/jet/runtime/ArrayIterator.java +++ b/stdlib/src/jet/runtime/ArrayIterator.java @@ -1,7 +1,7 @@ package jet.runtime; import jet.*; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import jet.typeinfo.TypeInfoProjection; /** diff --git a/stdlib/src/jet/typeinfo/TypeInfoPattern.java b/stdlib/src/jet/typeinfo/TypeInfoPattern.java index eff0ae819cc..79b8775d3e7 100644 --- a/stdlib/src/jet/typeinfo/TypeInfoPattern.java +++ b/stdlib/src/jet/typeinfo/TypeInfoPattern.java @@ -1,5 +1,7 @@ package jet.typeinfo; +import jet.TypeInfo; + /** * This class represents how type info of super class should be matched against type parameters of subclass. * diff --git a/stdlib/src/jet/typeinfo/TypeInfoProjection.java b/stdlib/src/jet/typeinfo/TypeInfoProjection.java index 8f20bcd52d0..0e9f45ef996 100644 --- a/stdlib/src/jet/typeinfo/TypeInfoProjection.java +++ b/stdlib/src/jet/typeinfo/TypeInfoProjection.java @@ -1,6 +1,6 @@ package jet.typeinfo; -import java.util.List; +import jet.TypeInfo; /** * @author alex.tkachman diff --git a/stdlib/src/org/jetbrains/jet/rt/Signature.java b/stdlib/src/org/jetbrains/jet/rt/Signature.java index ffa29d62636..68891a09e1a 100644 --- a/stdlib/src/org/jetbrains/jet/rt/Signature.java +++ b/stdlib/src/org/jetbrains/jet/rt/Signature.java @@ -1,6 +1,6 @@ package org.jetbrains.jet.rt; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import jet.typeinfo.TypeInfoProjection; import java.util.Collections; diff --git a/stdlib/src/org/jetbrains/jet/rt/TypeInfoImpl.java b/stdlib/src/org/jetbrains/jet/rt/TypeInfoImpl.java index 48ba799f33d..c4977efb24d 100644 --- a/stdlib/src/org/jetbrains/jet/rt/TypeInfoImpl.java +++ b/stdlib/src/org/jetbrains/jet/rt/TypeInfoImpl.java @@ -1,7 +1,7 @@ package org.jetbrains.jet.rt; import jet.JetObject; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import jet.typeinfo.TypeInfoProjection; import jet.typeinfo.TypeInfoVariance; diff --git a/stdlib/src/org/jetbrains/jet/rt/TypeInfoParser.java b/stdlib/src/org/jetbrains/jet/rt/TypeInfoParser.java index 99910c810e7..c2aa3476242 100644 --- a/stdlib/src/org/jetbrains/jet/rt/TypeInfoParser.java +++ b/stdlib/src/org/jetbrains/jet/rt/TypeInfoParser.java @@ -1,7 +1,7 @@ package org.jetbrains.jet.rt; +import jet.TypeInfo; import jet.typeinfo.JetClass; -import jet.typeinfo.TypeInfo; import jet.typeinfo.TypeInfoProjection; import jet.typeinfo.TypeInfoVariance; import org.jetbrains.jet.rt.signature.JetSignatureExceptionsAdapter; diff --git a/stdlib/src/org/jetbrains/jet/rt/TypeInfoProjectionImpl.java b/stdlib/src/org/jetbrains/jet/rt/TypeInfoProjectionImpl.java index 6a9d46f1c7e..720a3a59b56 100644 --- a/stdlib/src/org/jetbrains/jet/rt/TypeInfoProjectionImpl.java +++ b/stdlib/src/org/jetbrains/jet/rt/TypeInfoProjectionImpl.java @@ -1,6 +1,6 @@ package org.jetbrains.jet.rt; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import jet.typeinfo.TypeInfoProjection; import jet.typeinfo.TypeInfoVariance; diff --git a/stdlib/src/org/jetbrains/jet/rt/TypeInfoUtils.java b/stdlib/src/org/jetbrains/jet/rt/TypeInfoUtils.java index 3a249cf295e..c1e86542007 100644 --- a/stdlib/src/org/jetbrains/jet/rt/TypeInfoUtils.java +++ b/stdlib/src/org/jetbrains/jet/rt/TypeInfoUtils.java @@ -1,6 +1,6 @@ package org.jetbrains.jet.rt; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import jet.typeinfo.TypeInfoProjection; import java.util.List; diff --git a/stdlib/src/org/jetbrains/jet/rt/TypeInfoVar.java b/stdlib/src/org/jetbrains/jet/rt/TypeInfoVar.java index 598151b8bd4..31eb8337138 100644 --- a/stdlib/src/org/jetbrains/jet/rt/TypeInfoVar.java +++ b/stdlib/src/org/jetbrains/jet/rt/TypeInfoVar.java @@ -1,7 +1,7 @@ package org.jetbrains.jet.rt; import jet.JetObject; -import jet.typeinfo.TypeInfo; +import jet.TypeInfo; import jet.typeinfo.TypeInfoProjection; import java.util.List; From fa5be15852ff3d352c39b9601a7ef3da162d9915 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 26 Dec 2011 19:55:29 +0400 Subject: [PATCH 2/7] Diagnostics test data fixed --- compiler/frontend/src/jet/Library.jet | 14 ++++---- .../jet/lang/parsing/JetParsing.java | 9 ++--- .../testData/diagnostics/tests/Abstract.jet | 6 ++-- .../tests/AutocastsForStableIdentifiers.jet | 9 ++--- .../testData/diagnostics/tests/Bounds.jet | 6 ++-- .../testData/diagnostics/tests/Builders.jet | 9 +++-- .../tests/ConflictingOverloads.jet | 34 +++++++++--------- .../diagnostics/tests/ExtensionFunctions.jet | 9 +++-- .../tests/GenericArgumentConsistency.jet | 19 +++++----- .../tests/ImportResolutionOrder.jet | 16 ++++----- .../tests/NamespaceAsExpression.jet | 8 ++--- .../diagnostics/tests/NamespaceQualified.jet | 13 ++++--- .../testData/diagnostics/tests/Objects.jet | 13 +++---- .../testData/diagnostics/tests/Override.jet | 13 ++++--- .../diagnostics/tests/QualifiedThis.jet | 7 ++-- .../tests/RecursiveTypeInference.jet | 28 +++++++-------- .../diagnostics/tests/Redeclarations.jet | 13 ++++--- .../diagnostics/tests/ResolveToJava.jet | 7 ++-- .../diagnostics/tests/ShiftFunctionTypes.jet | 6 ++-- .../tests/backingField/CustomGetValGlobal.jet | 4 +-- .../tests/nullabilityAndAutoCasts/kt362.jet | 36 ++++++++++--------- .../diagnostics/tests/regressions/Jet121.jet | 22 ++++++------ .../diagnostics/tests/regressions/kt26-1.jet | 10 +++--- .../diagnostics/tests/regressions/kt26.jet | 10 +++--- .../diagnostics/tests/scopes/Imports.jet | 4 +-- idea/testData/checker/ExtensionFunctions.jet | 7 ++-- 26 files changed, 173 insertions(+), 159 deletions(-) diff --git a/compiler/frontend/src/jet/Library.jet b/compiler/frontend/src/jet/Library.jet index 090b3b47853..292e05dcf2a 100644 --- a/compiler/frontend/src/jet/Library.jet +++ b/compiler/frontend/src/jet/Library.jet @@ -1,14 +1,12 @@ package jet -//package typeinfo { - class TypeInfo { - fun isSubtypeOf(other : TypeInfo<*>) : Boolean - fun isInstance(obj : Any?) : Boolean - } +class TypeInfo { + fun isSubtypeOf(other : TypeInfo<*>) : Boolean + fun isInstance(obj : Any?) : Boolean +} - fun typeinfo() : TypeInfo - fun typeinfo(expression : T) : TypeInfo -//} +fun typeinfo() : TypeInfo +fun typeinfo(expression : T) : TypeInfo fun Any.synchronized(block : () -> R) : R diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParsing.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParsing.java index cf12d7e12b5..d1ae4814e39 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParsing.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParsing.java @@ -235,10 +235,11 @@ public class JetParsing extends AbstractJetParsing { IElementType keywordToken = tt(); JetNodeType declType = null; - if (keywordToken == NAMESPACE_KEYWORD) { - declType = parseNamespaceBlock(); - } - else if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) { +// if (keywordToken == NAMESPACE_KEYWORD) { +// declType = parseNamespaceBlock(); +// } +// else + if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) { declType = parseClass(detector.isDetected()); } else if (keywordToken == FUN_KEYWORD) { diff --git a/compiler/testData/diagnostics/tests/Abstract.jet b/compiler/testData/diagnostics/tests/Abstract.jet index 30cb42c416d..b22f0f9995a 100644 --- a/compiler/testData/diagnostics/tests/Abstract.jet +++ b/compiler/testData/diagnostics/tests/Abstract.jet @@ -1,3 +1,4 @@ +// FILE: a.kt // +JDK package abstract @@ -180,7 +181,8 @@ enum class MyEnum() { abstract enum class MyAbstractEnum() {} -package MyNamespace { +// FILE: b.kt +package MyNamespace //properties val a: Int val a1: Int = 1 @@ -222,8 +224,8 @@ package MyNamespace { var l1: Int = 0; abstract get abstract set var n: Int abstract get abstract set(v: Int) {} -} +// FILE: c.kt //creating an instance abstract class B1( val i: Int, diff --git a/compiler/testData/diagnostics/tests/AutocastsForStableIdentifiers.jet b/compiler/testData/diagnostics/tests/AutocastsForStableIdentifiers.jet index 82805cf8bfb..de170feeb32 100644 --- a/compiler/testData/diagnostics/tests/AutocastsForStableIdentifiers.jet +++ b/compiler/testData/diagnostics/tests/AutocastsForStableIdentifiers.jet @@ -1,8 +1,9 @@ -package example; - -package ns { +// FILE: a.kt +package example.ns val y : Any? = 2 -} + +// FILE: b.kt +package example object Obj { val y : Any? = 2 diff --git a/compiler/testData/diagnostics/tests/Bounds.jet b/compiler/testData/diagnostics/tests/Bounds.jet index e2b7cf1ce86..cbb0c25b0da 100644 --- a/compiler/testData/diagnostics/tests/Bounds.jet +++ b/compiler/testData/diagnostics/tests/Bounds.jet @@ -1,4 +1,5 @@ -package boundsWithSubstitutors { +// FILE: a.kt +package boundsWithSubstitutors open class A class B>() @@ -13,8 +14,7 @@ package boundsWithSubstitutors { val b0 = XAny?> val b1 = X, String>> -} - +// FILE: b.kt open class A {} open class B() diff --git a/compiler/testData/diagnostics/tests/Builders.jet b/compiler/testData/diagnostics/tests/Builders.jet index 497950f941f..762d4d2fbf9 100644 --- a/compiler/testData/diagnostics/tests/Builders.jet +++ b/compiler/testData/diagnostics/tests/Builders.jet @@ -1,9 +1,9 @@ +// FILE: a.kt // +JDK +package html import java.util.* -package html { - abstract class Factory { abstract fun create() : T } @@ -85,9 +85,9 @@ package html { return html } -} +// FILE: b.kt -package foo { +package foo import html.* @@ -120,4 +120,3 @@ fun result(args : Array) = } } } -} diff --git a/compiler/testData/diagnostics/tests/ConflictingOverloads.jet b/compiler/testData/diagnostics/tests/ConflictingOverloads.jet index bb5554d2d32..32db4f06e3c 100644 --- a/compiler/testData/diagnostics/tests/ConflictingOverloads.jet +++ b/compiler/testData/diagnostics/tests/ConflictingOverloads.jet @@ -1,3 +1,4 @@ +// FILE: b.kt // http://youtrack.jetbrains.net/issue/KT-424 class A { @@ -13,7 +14,8 @@ class A { } } -package deepSpace { +// FILE: b.kt +package deepSpace fun c(s: String) { } @@ -27,28 +29,25 @@ package deepSpace { fun d(s: String) { } } -} - +// FILE: b.kt // check no error in overload in different namespaces -package ns1 { +package ns1 fun e() = 1 -} -package ns2 { +// FILE: b.kt +package ns2 fun e() = 1 -} -package ns3 { - package ns1 { +// FILE: b.kt +package ns3.ns1 fun e() = 1 - } -} +// FILE: b.kt // check same rules apply for ext functions -package extensionFunctions { +package extensionFunctions fun Int.qwe(a: Float) = 1 fun Int.qwe(a: Float) = 2 @@ -56,19 +55,19 @@ package extensionFunctions { fun Int.rty() = 3 fun String.rty() = 4 -} +// FILE: b.kt // check no error when regular function and extension function have same name -package extensionAndRegular { +package extensionAndRegular fun who() = 1 fun Int.who() = 1 -} +// FILE: b.kt // constructor vs. fun overload -package constructorVsFun { +package constructorVsFun class a() { } fun a() = 1 @@ -93,5 +92,4 @@ package constructorVsFun { class object { class ololo() { } } - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/ExtensionFunctions.jet b/compiler/testData/diagnostics/tests/ExtensionFunctions.jet index 0e963b6a6d6..6d2596c7c65 100644 --- a/compiler/testData/diagnostics/tests/ExtensionFunctions.jet +++ b/compiler/testData/diagnostics/tests/ExtensionFunctions.jet @@ -1,4 +1,6 @@ +// FILE: b.kt // +JDK +package outer fun Int?.optint() : Unit {} val Int?.optval : Unit = #() @@ -39,7 +41,10 @@ val T.foo : T fun Int.foo() = this -package null_safety { +// FILE: b.kt +package null_safety + +import outer.* fun parse(cmd: String): Command? { return null } class Command() { @@ -69,5 +74,3 @@ package null_safety { if (command == null) 1 } - -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/GenericArgumentConsistency.jet b/compiler/testData/diagnostics/tests/GenericArgumentConsistency.jet index b9ab728653d..9d4152dd963 100644 --- a/compiler/testData/diagnostics/tests/GenericArgumentConsistency.jet +++ b/compiler/testData/diagnostics/tests/GenericArgumentConsistency.jet @@ -1,3 +1,4 @@ +// FILE: b.kt trait A {} trait B : A {} trait C : B, A {} @@ -13,30 +14,30 @@ trait BB1 : BA1 {} trait BB2 : BA1, BB1 {} -package x { +// FILE: b.kt +package x trait AA1 {} trait AB1 : AA1 {} trait AB3 : AA1> {} trait AB2 : AA1, AB1, AB3 {} -} -package x2 { +// FILE: b.kt +package x2 trait AA1 {} trait AB1 : AA1 {} trait AB3 : AA1> {} trait AB2 : AA1, AB1, AB3 {} -} -package x3 { +// FILE: b.kt +package x3 trait AA1 {} trait AB1 : AA1 {} trait AB3 : AA1> {} trait AB2 : AA1, AB1, AB3 {} -} -package sx2 { +// FILE: b.kt +package sx2 trait AA1 {} trait AB1 : AA1 {} trait AB3 : AA1> {} - trait AB2 : AA1, AB1, AB3 {} -} \ No newline at end of file + trait AB2 : AA1, AB1, AB3 {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/ImportResolutionOrder.jet b/compiler/testData/diagnostics/tests/ImportResolutionOrder.jet index 7e0ecfe19e0..d93874eb976 100644 --- a/compiler/testData/diagnostics/tests/ImportResolutionOrder.jet +++ b/compiler/testData/diagnostics/tests/ImportResolutionOrder.jet @@ -1,23 +1,23 @@ +// FILE: b.kt // KT-355 Resolve imports after all symbols are built -package a { +package a import b.* val x : X = X() -} -package b { +// FILE: b.kt +package b class X() { } -} -package c { +// FILE: b.kt +package c import d.X val x : X = X() -} -package d { +// FILE: b.kt +package d class X() { } -} diff --git a/compiler/testData/diagnostics/tests/NamespaceAsExpression.jet b/compiler/testData/diagnostics/tests/NamespaceAsExpression.jet index b4e08dfe704..d471424c0a9 100644 --- a/compiler/testData/diagnostics/tests/NamespaceAsExpression.jet +++ b/compiler/testData/diagnostics/tests/NamespaceAsExpression.jet @@ -1,8 +1,8 @@ +// FILE: b.kt +package root.a + +// FILE: b.kt package root -package a { - -} - val x = a val y2 = package diff --git a/compiler/testData/diagnostics/tests/NamespaceQualified.jet b/compiler/testData/diagnostics/tests/NamespaceQualified.jet index f57a483de32..ea27a3d81f6 100644 --- a/compiler/testData/diagnostics/tests/NamespaceQualified.jet +++ b/compiler/testData/diagnostics/tests/NamespaceQualified.jet @@ -1,26 +1,29 @@ +// FILE: b.kt // +JDK -package foobar -package a { +package foobar.a import java.* val a : util.List? = null val a1 : List? = null -} +// FILE: b.kt +package foobar abstract class Foo() { abstract val x : T } -package a { +// FILE: b.kt +package foobar.a import java.util.* val b : List? = a val b1 : util.List? = a -} +// FILE: b.kt +package foobar val x1 = a.a val y1 = a.b diff --git a/compiler/testData/diagnostics/tests/Objects.jet b/compiler/testData/diagnostics/tests/Objects.jet index 14ce45145bd..b1ca0a11d32 100644 --- a/compiler/testData/diagnostics/tests/Objects.jet +++ b/compiler/testData/diagnostics/tests/Objects.jet @@ -1,4 +1,5 @@ -package toplevelObjectDeclarations { +// FILE: f.kt +package toplevelObjectDeclarations open class Foo(y : Int) { open fun foo() : Int = 1 } @@ -26,9 +27,9 @@ package toplevelObjectDeclarations { } val z = y.foo() -} -package nestedObejcts { +// FILE: f.kt +package nestedObejcts object A { val b = B val d = A.B.A @@ -56,9 +57,10 @@ package nestedObejcts { val c = A.B val d = A.B.A val e = B.A.B -} -package localObjects { +// FILE: f.kt + +package localObjects object A { val x : Int = 0 } @@ -80,4 +82,3 @@ package localObjects { } val bb = B.foo() -} diff --git a/compiler/testData/diagnostics/tests/Override.jet b/compiler/testData/diagnostics/tests/Override.jet index 6884e82eb42..2cd478b431e 100644 --- a/compiler/testData/diagnostics/tests/Override.jet +++ b/compiler/testData/diagnostics/tests/Override.jet @@ -1,6 +1,5 @@ -package override - -package normal { +// FILE: f.kt +package override.normal trait MyTrait { fun foo() val pr : Unit @@ -49,9 +48,10 @@ package normal { override fun bar() {} override val prr : Unit = #() } -} -package generics { +// FILE: f.kt + +package override.generics trait MyTrait { fun foo(t: T) : T } @@ -109,5 +109,4 @@ package generics { fun foo(t: T) = t fun bar(t: T) = t val pr : T = t - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/QualifiedThis.jet b/compiler/testData/diagnostics/tests/QualifiedThis.jet index 82d44c804ce..de7f781020e 100644 --- a/compiler/testData/diagnostics/tests/QualifiedThis.jet +++ b/compiler/testData/diagnostics/tests/QualifiedThis.jet @@ -1,3 +1,4 @@ +// FILE: f.kt class Dup { fun Dup() : Unit { this@Dup @@ -21,7 +22,8 @@ fun foo1() : Unit { this@a } -package closures { +// FILE: f.kt +package closures class A(val a:Int) { class B() { @@ -37,5 +39,4 @@ package closures { return (@a{Double.() -> this@a : Double + this@xx : Char}) } } - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/RecursiveTypeInference.jet b/compiler/testData/diagnostics/tests/RecursiveTypeInference.jet index 47e0d6aeb58..095d92d9458 100644 --- a/compiler/testData/diagnostics/tests/RecursiveTypeInference.jet +++ b/compiler/testData/diagnostics/tests/RecursiveTypeInference.jet @@ -1,42 +1,40 @@ -package a { +// FILE: f.kt +package a val foo = bar() fun bar() = foo -} -package b { +// FILE: f.kt +package b fun foo() = bar() fun bar() = foo() -} -package c { +// FILE: f.kt +package c fun bazz() = bar() fun foo() = bazz() fun bar() = foo() -} -package ok { +// FILE: f.kt - package a { + package ok.a val foo = bar() fun bar() : Int = foo - } - package b { +// FILE: f.kt + package ok.b fun foo() : Int = bar() fun bar() = foo() - } - package c { +// FILE: f.kt + package ok.c fun bazz() = bar() fun foo() : Int = bazz() - fun bar() = foo() - } -} \ No newline at end of file + fun bar() = foo() \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/Redeclarations.jet b/compiler/testData/diagnostics/tests/Redeclarations.jet index 18756b8ba9a..8dc541d355f 100644 --- a/compiler/testData/diagnostics/tests/Redeclarations.jet +++ b/compiler/testData/diagnostics/tests/Redeclarations.jet @@ -1,16 +1,15 @@ -package redeclarations { +// FILE: f.kt +package redeclarations object A { val x : Int = 0 val A = 1 } - package A { - class A {} - } - - class A {} + class A {} val A = 1 -} +// FILE: f.kt + package redeclarations.A + class A {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/ResolveToJava.jet b/compiler/testData/diagnostics/tests/ResolveToJava.jet index 8275b2c842c..4877ed5f61f 100644 --- a/compiler/testData/diagnostics/tests/ResolveToJava.jet +++ b/compiler/testData/diagnostics/tests/ResolveToJava.jet @@ -1,3 +1,4 @@ +// FILE: f.kt // +JDK import java.* @@ -49,6 +50,6 @@ fun test(l : java.util.List) { } -package xxx { - import java.lang.Class; -} \ No newline at end of file +// FILE: f.kt +package xxx + import java.lang.Class; \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/ShiftFunctionTypes.jet b/compiler/testData/diagnostics/tests/ShiftFunctionTypes.jet index 31e951a535b..346943c5f13 100644 --- a/compiler/testData/diagnostics/tests/ShiftFunctionTypes.jet +++ b/compiler/testData/diagnostics/tests/ShiftFunctionTypes.jet @@ -1,9 +1,11 @@ +// FILE: f.kt class A { } -package n { +// FILE: f.kt +package n class B -} +// FILE: f.kt abstract class XXX() { abstract val a : Int abstract val a1 : package.Int diff --git a/compiler/testData/diagnostics/tests/backingField/CustomGetValGlobal.jet b/compiler/testData/diagnostics/tests/backingField/CustomGetValGlobal.jet index 0a26ab8d578..aeda77c2dae 100644 --- a/compiler/testData/diagnostics/tests/backingField/CustomGetValGlobal.jet +++ b/compiler/testData/diagnostics/tests/backingField/CustomGetValGlobal.jet @@ -1,5 +1,3 @@ -package customGetValGlobal { +package customGetValGlobal val zz = 1 get() = $zz * 2 - -} diff --git a/compiler/testData/diagnostics/tests/nullabilityAndAutoCasts/kt362.jet b/compiler/testData/diagnostics/tests/nullabilityAndAutoCasts/kt362.jet index a934b77d046..84ae23e9fb9 100644 --- a/compiler/testData/diagnostics/tests/nullabilityAndAutoCasts/kt362.jet +++ b/compiler/testData/diagnostics/tests/nullabilityAndAutoCasts/kt362.jet @@ -1,21 +1,8 @@ +// FILE: this.kt + // KT-362 Don't allow autocasts on vals that are not internal package example; -package test { - public class Public() { - public val public : Int? = 1; - protected val protected : Int? = 1; - internal protected val i_protected : Int? = 1; - val internal : Int? = 1 - } - internal class Internal() { - public val public : Int? = 1; - protected val protected : Int? = 1; - internal protected val i_protected : Int? = 1; - val internal : Int? = 1 - } -} - fun test() { val p = test.Public() if (p.public is Int) p.public + 1 @@ -27,4 +14,21 @@ fun test() { if (i.protected is Int) i.protected + 1 if (i.i_protected is Int) i.i_protected + 1 if (i.internal is Int) i.internal + 1 -} \ No newline at end of file +} + +// FILE: other.kt +package test + +public class Public() { + public val public : Int? = 1; + protected val protected : Int? = 1; + internal protected val i_protected : Int? = 1; + val internal : Int? = 1 +} +internal class Internal() { + public val public : Int? = 1; + protected val protected : Int? = 1; + internal protected val i_protected : Int? = 1; + val internal : Int? = 1 +} + diff --git a/compiler/testData/diagnostics/tests/regressions/Jet121.jet b/compiler/testData/diagnostics/tests/regressions/Jet121.jet index 4dda2b95c51..ecab09cf75c 100644 --- a/compiler/testData/diagnostics/tests/regressions/Jet121.jet +++ b/compiler/testData/diagnostics/tests/regressions/Jet121.jet @@ -1,14 +1,14 @@ -package jet121 { - fun box() : String { - val answer = apply("OK") { String.() : Int -> - get(0) - length - } +package jet121 - return if (answer == 2) "OK" else "FAIL" - } +fun box() : String { +val answer = apply("OK") { String.() : Int -> + get(0) + length +} - fun apply(arg:String, f : String.() -> Int) : Int { - return arg.f() - } +return if (answer == 2) "OK" else "FAIL" +} + +fun apply(arg:String, f : String.() -> Int) : Int { + return arg.f() } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/regressions/kt26-1.jet b/compiler/testData/diagnostics/tests/regressions/kt26-1.jet index d749ca77a99..d5d115f4d0f 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt26-1.jet +++ b/compiler/testData/diagnostics/tests/regressions/kt26-1.jet @@ -1,7 +1,9 @@ +// FILE: this.kt + // KT-26 Import namespaces defined in this file +package foo -package foo { - import bar.* // Must not be an error -} +import bar.* // Must not be an error -package bar {} \ No newline at end of file +// FILE: other.kt +package bar \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/regressions/kt26.jet b/compiler/testData/diagnostics/tests/regressions/kt26.jet index 816545f24b4..848d726c0a4 100644 --- a/compiler/testData/diagnostics/tests/regressions/kt26.jet +++ b/compiler/testData/diagnostics/tests/regressions/kt26.jet @@ -1,10 +1,12 @@ +// FILE: a.kt // KT-26 Import namespaces defined in this file import html.* // Must not be an error -package html { +// FILE: b.kt - abstract class Factory { - fun create() : T? = null - } +package html + +abstract class Factory { +fun create() : T? = null } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/scopes/Imports.jet b/compiler/testData/diagnostics/tests/scopes/Imports.jet index 8ff30e6834d..cedb7b9345e 100644 --- a/compiler/testData/diagnostics/tests/scopes/Imports.jet +++ b/compiler/testData/diagnostics/tests/scopes/Imports.jet @@ -1,4 +1,4 @@ -//FILE:a.kt +// FILE:a.kt package a import b.B //class @@ -13,7 +13,7 @@ fun test(arg: B) { arg.ext() } -//FILE:b.kt +// FILE:b.kt package b class B() {} diff --git a/idea/testData/checker/ExtensionFunctions.jet b/idea/testData/checker/ExtensionFunctions.jet index f08a885ce26..6fa9fe9adcc 100644 --- a/idea/testData/checker/ExtensionFunctions.jet +++ b/idea/testData/checker/ExtensionFunctions.jet @@ -1,3 +1,5 @@ +// FILE: b.kt + fun Int?.optint() : Unit {} val Int?.optval : Unit = #() @@ -37,7 +39,8 @@ val T.foo : T fun Int.foo() = this -package null_safety { +// FILE: b.kt +package null_safety fun parse(cmd: String): Command? { return null } class Command() { @@ -67,5 +70,3 @@ package null_safety { if (command == null) 1 } - -} \ No newline at end of file From f45c6171bac35978e3cc2a93bbac3cdc848b5181 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 27 Dec 2011 14:17:23 +0400 Subject: [PATCH 3/7] Resolve test data fixed --- .../codegen/namespaceQualifiedMethod.jet | 3 +- compiler/testData/resolve/Namespaces.jet | 13 +- compiler/testData/resolve/NestedObjects.jet | 3 +- .../tests/org/jetbrains/jet/JetTestUtils.java | 42 +++++++ .../jet/checkers/JetDiagnosticsTest.java | 46 ++----- .../jet/resolve/ExpectedResolveData.java | 116 ++++++++++++------ .../resolve/ExtensibleResolveTestCase.java | 13 +- .../jetbrains/jet/resolve/JetResolveTest.java | 13 +- 8 files changed, 157 insertions(+), 92 deletions(-) diff --git a/compiler/testData/codegen/namespaceQualifiedMethod.jet b/compiler/testData/codegen/namespaceQualifiedMethod.jet index 0a8dd2c6f87..92aaf32b62e 100644 --- a/compiler/testData/codegen/namespaceQualifiedMethod.jet +++ b/compiler/testData/codegen/namespaceQualifiedMethod.jet @@ -1,6 +1,5 @@ -package Foo { +package Foo fun bar() = 610 -} fun box(): String { return if (Foo.bar() == 610) "OK" else "fail" diff --git a/compiler/testData/resolve/Namespaces.jet b/compiler/testData/resolve/Namespaces.jet index 4b79d7a4596..c48e0bffaa2 100644 --- a/compiler/testData/resolve/Namespaces.jet +++ b/compiler/testData/resolve/Namespaces.jet @@ -1,22 +1,21 @@ -package root - -~a~package a { +// FILE: f.kt +~a~package a import java.* ~a.a~val a : util.List? = null val y : Any? = `a.b`b -} - -package a { +// FILE: f.kt +package a import java.util.* ~a.b~val b : List? = null val x = `a.a`a -} +// FILE: f.kt +package root val x = `a`a.`a.a`a val y = `a`a.`a.b`b \ No newline at end of file diff --git a/compiler/testData/resolve/NestedObjects.jet b/compiler/testData/resolve/NestedObjects.jet index cb45d1f1ecb..05efcc2f5d7 100644 --- a/compiler/testData/resolve/NestedObjects.jet +++ b/compiler/testData/resolve/NestedObjects.jet @@ -1,4 +1,4 @@ -~ns~package nestedObjects { +~ns~package nestedObjects object ~A~A { val b = `A.B`B val d = `A`A.`A.B`B.`A.B.A`A @@ -25,4 +25,3 @@ val c = `A`A.`A.B`B val d = A.B.`A.B.A`A val e = B.`!`A.B -} diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java index 687c1f1a9ac..14f979b6bc2 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java @@ -1,5 +1,6 @@ package org.jetbrains.jet; +import com.google.common.collect.Lists; import com.intellij.openapi.Disposable; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory; @@ -18,6 +19,9 @@ import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.Collections; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @author abreslav @@ -168,5 +172,43 @@ public class JetTestUtils { mkdirs(file); } + public static final Pattern FILE_PATTERN = Pattern.compile("//\\s*FILE:\\s*(.*)$", Pattern.MULTILINE); + public interface TestFileFactory { + F create(String fileName, String text); + } + public static List createTestFiles(String testFileName, String expectedText, TestFileFactory factory) { + List testFileFiles = Lists.newArrayList(); + Matcher matcher = FILE_PATTERN.matcher(expectedText); + if (!matcher.find()) { + // One file + testFileFiles.add(factory.create(testFileName, expectedText)); + } + else { + int processedChars = 0; + // Many files + while (true) { + String fileName = matcher.group(1); + int start = matcher.start(); + assert start == processedChars : "Characters skipped from " + processedChars + " to " + matcher.start(); + + boolean nextFileExists = matcher.find(); + int end; + if (nextFileExists) { + end = matcher.start(); + } + else { + end = expectedText.length(); + } + String fileText = expectedText.substring(start, end); + processedChars = end; + + testFileFiles.add(factory.create(fileName, fileText)); + + if (!nextFileExists) break; + } + assert processedChars == expectedText.length() : "Characters skipped from " + processedChars + " to " + (expectedText.length() - 1); + } + return testFileFiles; + } } diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java index 61116f1dfa9..ce7d5872c2e 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.JetLiteFixture; import org.jetbrains.jet.JetTestCaseBuilder; +import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.lang.Configuration; import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory; import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; @@ -20,15 +21,12 @@ import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import java.io.File; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * @author abreslav */ public class JetDiagnosticsTest extends JetLiteFixture { private String name; - public static final Pattern FILE_PATTERN = Pattern.compile("//\\s*FILE:\\s*(.*)$", Pattern.MULTILINE); public JetDiagnosticsTest(@NonNls String dataPath, String name) { super(dataPath); @@ -88,7 +86,12 @@ public class JetDiagnosticsTest extends JetLiteFixture { String expectedText = loadFile(testFileName); - List testFileFiles = createTestFiles(testFileName, expectedText); + List testFileFiles = JetTestUtils.createTestFiles(testFileName, expectedText, new JetTestUtils.TestFileFactory() { + @Override + public TestFile create(String fileName, String text) { + return new TestFile(fileName, text); + } + }); boolean importJdk = expectedText.contains("+JDK"); // Configuration configuration = importJdk ? JavaBridgeConfiguration.createJavaBridgeConfiguration(getProject()) : Configuration.EMPTY; @@ -114,41 +117,6 @@ public class JetDiagnosticsTest extends JetLiteFixture { assertEquals(expectedText, actualText.toString()); } - private List createTestFiles(String testFileName, String expectedText) { - List testFileFiles = Lists.newArrayList(); - Matcher matcher = FILE_PATTERN.matcher(expectedText); - if (!matcher.find()) { - // One file - testFileFiles.add(new TestFile(testFileName, expectedText)); - } - else { - int processedChars = 0; - // Many files - while (true) { - String fileName = matcher.group(1); - int start = matcher.start(); - assertTrue("Characters skipped from " + processedChars + " to " + matcher.start(), start == processedChars); - - boolean nextFileExists = matcher.find(); - int end; - if (nextFileExists) { - end = matcher.start(); - } - else { - end = expectedText.length(); - } - String fileText = expectedText.substring(start, end); - processedChars = end; - - testFileFiles.add(new TestFile(fileName, fileText)); - - if (!nextFileExists) break; - } - assertTrue("Characters skipped from " + processedChars + " to " + (expectedText.length() - 1), processedChars == expectedText.length()); - } - return testFileFiles; - } - // private void convert(File src, File dest) throws IOException { // File[] files = src.listFiles(); // for (File file : files) { diff --git a/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java index 7224b087dc3..ee81f2821bc 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java +++ b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java @@ -1,8 +1,13 @@ package org.jetbrains.jet.resolve; +import com.google.common.base.Predicates; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.psi.util.PsiTreeUtil; -import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory; import org.jetbrains.jet.lang.descriptors.*; @@ -12,13 +17,14 @@ import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnostic; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lang.types.JetStandardLibrary; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.TypeConstructor; import java.util.HashMap; -import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; @@ -31,22 +37,37 @@ import static org.jetbrains.jet.lang.resolve.BindingContext.REFERENCE_TARGET; /** * @author abreslav */ -public class ExpectedResolveData { +public abstract class ExpectedResolveData { - private final Map declarationToPosition = new HashMap(); - private final Map positionToReference = new HashMap(); - private final Map positionToType = new HashMap(); - private final Map nameToDescriptor; - private final Map nameToPsiElement; -// private final Map nameToType; + private static class Position { + private final PsiElement element; - public ExpectedResolveData(Map nameToDescriptor, Map nameToPsiElement/*, Map nameToType*/) { - this.nameToDescriptor = nameToDescriptor; - this.nameToPsiElement = nameToPsiElement; -// this.nameToType = nameToType; + private Position(JetFile file, int offset) { + this.element = file.findElementAt(offset); + } + + public PsiElement getElement() { + return element; + } } - public String extractData(String text) { + private final Map declarationToPosition = Maps.newHashMap(); + private final Map positionToReference = Maps.newHashMap(); + private final Map positionToType = Maps.newHashMap(); + + private final Map nameToDescriptor; + private final Map nameToPsiElement; + + public ExpectedResolveData(Map nameToDescriptor, Map nameToPsiElement) { + this.nameToDescriptor = nameToDescriptor; + this.nameToPsiElement = nameToPsiElement; + } + + public final JetFile createFileFromMarkedUpText(String fileName, String text) { + Map declarationToIntPosition = Maps.newHashMap(); + Map intPositionToReference = Maps.newHashMap(); + Map intPositionToType = Maps.newHashMap(); + Pattern pattern = Pattern.compile("(~[^~]+~)|(`[^`]+`)"); while (true) { Matcher matcher = pattern.matcher(text); @@ -56,16 +77,16 @@ public class ExpectedResolveData { String name = group.substring(1, group.length() - 1); int start = matcher.start(); if (group.startsWith("~")) { - if (declarationToPosition.put(name, start) != null) { + if (declarationToIntPosition.put(name, start) != null) { throw new IllegalArgumentException("Redeclaration: " + name); } } else if (group.startsWith("`")) { if (name.startsWith(":")) { - positionToType.put(start - 1, name.substring(1)); + intPositionToType.put(start - 1, name.substring(1)); } else { - positionToReference.put(start, name); + intPositionToReference.put(start, name); } } else { @@ -75,16 +96,38 @@ public class ExpectedResolveData { text = text.substring(0, start) + text.substring(matcher.end()); } - System.out.println(text); - return text; + JetFile jetFile = createJetFile(fileName, text); + + for (Map.Entry entry : intPositionToType.entrySet()) { + positionToType.put(new Position(jetFile, entry.getKey()), entry.getValue()); + } + for (Map.Entry entry : declarationToIntPosition.entrySet()) { + declarationToPosition.put(entry.getKey(), new Position(jetFile, entry.getValue())); + } + for (Map.Entry entry : intPositionToReference.entrySet()) { + positionToReference.put(new Position(jetFile, entry.getKey()), entry.getValue()); + } + return jetFile; } - public void checkResult(JetFile file) { - final Set unresolvedReferences = new HashSet(); - JetSemanticServices semanticServices = JetSemanticServices.createSemanticServices(file.getProject()); + protected abstract JetFile createJetFile(String fileName, String text); + + public final void checkResult(List files) { + if (files.isEmpty()) { + System.err.println("Suspicious: no files"); + return; + } + final Set unresolvedReferences = Sets.newHashSet(); + Project project = files.iterator().next().getProject(); + JetSemanticServices semanticServices = JetSemanticServices.createSemanticServices(project); JetStandardLibrary lib = semanticServices.getStandardLibrary(); - BindingContext bindingContext = JetTestUtils.analyzeNamespace(file.getRootNamespace(), JetControlFlowDataTraceFactory.EMPTY); + List declarations = Lists.newArrayList(); + for (JetFile file : files) { + declarations.add(file.getRootNamespace()); + } + + BindingContext bindingContext = AnalyzerFacade.analyzeNamespacesWithJavaIntegration(project, declarations, Predicates.alwaysTrue(), JetControlFlowDataTraceFactory.EMPTY); for (Diagnostic diagnostic : bindingContext.getDiagnostics()) { if (diagnostic instanceof UnresolvedReferenceDiagnostic) { UnresolvedReferenceDiagnostic unresolvedReferenceDiagnostic = (UnresolvedReferenceDiagnostic) diagnostic; @@ -95,20 +138,20 @@ public class ExpectedResolveData { Map nameToDeclaration = new HashMap(); Map declarationToName = new HashMap(); - for (Map.Entry entry : declarationToPosition.entrySet()) { + for (Map.Entry entry : declarationToPosition.entrySet()) { String name = entry.getKey(); - Integer position = entry.getValue(); - PsiElement element = file.findElementAt(position); + Position position = entry.getValue(); + PsiElement element = position.getElement(); JetDeclaration ancestorOfType = getAncestorOfType(JetDeclaration.class, element); nameToDeclaration.put(name, ancestorOfType); declarationToName.put(ancestorOfType, name); } - for (Map.Entry entry : positionToReference.entrySet()) { - Integer position = entry.getKey(); + for (Map.Entry entry : positionToReference.entrySet()) { + Position position = entry.getKey(); String name = entry.getValue(); - PsiElement element = file.findElementAt(position); + PsiElement element = position.getElement(); JetReferenceExpression referenceExpression = PsiTreeUtil.getParentOfType(element, JetReferenceExpression.class); if ("!".equals(name)) { @@ -216,11 +259,11 @@ public class ExpectedResolveData { } } - for (Map.Entry entry : positionToType.entrySet()) { - Integer position = entry.getKey(); + for (Map.Entry entry : positionToType.entrySet()) { + Position position = entry.getKey(); String typeName = entry.getValue(); - PsiElement element = file.findElementAt(position); + PsiElement element = position.getElement(); JetExpression expression = getAncestorOfType(JetExpression.class, element); JetType expressionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression); @@ -230,15 +273,16 @@ public class ExpectedResolveData { assertNotNull("Expected class not found: " + typeName, expectedClass); expectedTypeConstructor = expectedClass.getTypeConstructor(); - } else { - Integer declarationPosition = declarationToPosition.get(typeName); + } + else { + Position declarationPosition = declarationToPosition.get(typeName); assertNotNull("Undeclared: " + typeName, declarationPosition); - PsiElement declElement = file.findElementAt(declarationPosition); + PsiElement declElement = declarationPosition.getElement(); assertNotNull(declarationPosition); JetDeclaration declaration = getAncestorOfType(JetDeclaration.class, declElement); assertNotNull(declaration); if (declaration instanceof JetClass) { - ClassDescriptor classDescriptor = bindingContext.get(BindingContext.CLASS, (JetClass) declaration); + ClassDescriptor classDescriptor = bindingContext.get(BindingContext.CLASS, declaration); expectedTypeConstructor = classDescriptor.getTypeConstructor(); } else if (declaration instanceof JetTypeParameter) { diff --git a/compiler/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java b/compiler/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java index 92f87493622..649412be2d5 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java +++ b/compiler/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java @@ -2,9 +2,10 @@ package org.jetbrains.jet.resolve; import org.jetbrains.annotations.NonNls; import org.jetbrains.jet.JetLiteFixture; +import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.lang.psi.JetFile; -import java.io.File; +import java.util.List; /** * @author abreslav @@ -22,8 +23,12 @@ public abstract class ExtensibleResolveTestCase extends JetLiteFixture { protected void doTest(@NonNls String filePath) throws Exception { String text = loadFile(filePath); - text = expectedResolveData.extractData(text); - JetFile jetFile = createPsiFile(new File(filePath).getName(), text); - expectedResolveData.checkResult(jetFile); + List files = JetTestUtils.createTestFiles("file.kt", text, new JetTestUtils.TestFileFactory() { + @Override + public JetFile create(String fileName, String text) { + return expectedResolveData.createFileFromMarkedUpText(fileName, text); + } + }); + expectedResolveData.checkResult(files); } } diff --git a/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java index cca4e1ee90d..b5f606834d4 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java +++ b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java @@ -15,6 +15,7 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; +import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.calls.CallResolver; import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; @@ -54,7 +55,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase { FunctionDescriptor descriptorForSet = standardFunction(lib.getArray(), Collections.singletonList(new TypeProjection(lib.getIntType())), "set", lib.getIntType(), lib.getIntType()); nameToDescriptor.put("std::Array.set(Int, Int)", descriptorForSet.getOriginal()); - Map nameToDeclaration = new HashMap(); + Map nameToDeclaration = new HashMap(); PsiClass java_util_Collections = findClass("java.util.Collections"); nameToDeclaration.put("java::java.util.Collections.emptyList()", findMethod(java_util_Collections, "emptyList")); nameToDeclaration.put("java::java.util.Collections", java_util_Collections); @@ -78,7 +79,12 @@ public class JetResolveTest extends ExtensibleResolveTestCase { nameToDeclaration.put("java::java.lang.Number", java_lang_Number); nameToDeclaration.put("java::java.lang.Number.intValue()", java_lang_Number.findMethodsByName("intValue", true)[0]); - return new ExpectedResolveData(nameToDescriptor, nameToDeclaration); + return new ExpectedResolveData(nameToDescriptor, nameToDeclaration) { + @Override + protected JetFile createJetFile(String fileName, String text) { + return createCheckAndReturnPsiFile(fileName, text); + } + }; } @NotNull @@ -154,6 +160,9 @@ public class JetResolveTest extends ExtensibleResolveTestCase { } public static Test suite() { +// TestSuite suite = new TestSuite(); +// suite.addTest(new JetResolveTest("/resolve/Basic.jet", "basic")); +// return suite; return JetTestCaseBuilder.suiteForDirectory(getHomeDirectory() + "/compiler/testData/", "/resolve/", true, new JetTestCaseBuilder.NamedTestFactory() { @NotNull @Override From 2d78ccb9e1b3f600d8d498f02181819b138cf309 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 27 Dec 2011 14:54:41 +0400 Subject: [PATCH 4/7] Annotator test data fixed --- idea/testData/checker/Abstract.jet | 4 +- idea/testData/checker/Bounds.jet | 17 ----- .../checker/BoundsWithSubstitutors.jet | 13 ++++ idea/testData/checker/Builders.jet | 11 +--- idea/testData/checker/ExtensionFunctions.jet | 4 +- .../checker/GenericArgumentConsistency.jet | 48 +++++++------- idea/testData/checker/LocalObjects.jet | 21 +++++++ .../checker/NamespaceAsExpression.jet | 6 +- idea/testData/checker/NamespaceQualified.jet | 25 +------- idea/testData/checker/NestedObjects.jet | 28 +++++++++ idea/testData/checker/Objects.jet | 59 +----------------- idea/testData/checker/Override.jet | 40 ------------ .../testData/checker/OverridesAndGenerics.jet | 35 +++++++++++ idea/testData/checker/QualifiedThis.jet | 18 ------ .../checker/QualifiedThisInClosures.jet | 16 +++++ .../checker/RecursiveTypeInference.jet | 62 +++++++++---------- idea/testData/checker/Redeclarations.jet | 8 +-- idea/testData/checker/ResolveToJava.jet | 4 -- idea/testData/checker/regression/Jet121.jet | 5 +- 19 files changed, 182 insertions(+), 242 deletions(-) create mode 100644 idea/testData/checker/BoundsWithSubstitutors.jet create mode 100644 idea/testData/checker/LocalObjects.jet create mode 100644 idea/testData/checker/NestedObjects.jet create mode 100644 idea/testData/checker/OverridesAndGenerics.jet create mode 100644 idea/testData/checker/QualifiedThisInClosures.jet diff --git a/idea/testData/checker/Abstract.jet b/idea/testData/checker/Abstract.jet index e61c23954ce..95e0f01792f 100644 --- a/idea/testData/checker/Abstract.jet +++ b/idea/testData/checker/Abstract.jet @@ -118,7 +118,7 @@ enum class MyEnum() { abstract enum class MyAbstractEnum() {} -package MyNamespace { +//package MyNamespace { //properties val a: Int val a1: Int = 1 @@ -145,7 +145,7 @@ package MyNamespace { fun g() {} abstract fun h() abstract fun j() {} -} +//} //creating an instance abstract class B1( diff --git a/idea/testData/checker/Bounds.jet b/idea/testData/checker/Bounds.jet index 0ead1d76bba..d01aaf4e6bc 100644 --- a/idea/testData/checker/Bounds.jet +++ b/idea/testData/checker/Bounds.jet @@ -1,20 +1,3 @@ -package boundsWithSubstitutors { - open class A - class B>() - - class C : A - - val a = B() - val a1 = B<Int>() - - class X() - - val b = X, C>> - val b0 = XAny?> - val b1 = X, String>> - -} - open class A {} open class B() diff --git a/idea/testData/checker/BoundsWithSubstitutors.jet b/idea/testData/checker/BoundsWithSubstitutors.jet new file mode 100644 index 00000000000..84ec2487842 --- /dev/null +++ b/idea/testData/checker/BoundsWithSubstitutors.jet @@ -0,0 +1,13 @@ + open class A + class B>() + + class C : A + + val a = B() + val a1 = B<Int>() + + class X() + + val b = X, C>> + val b0 = XAny?> + val b1 = X, String>> diff --git a/idea/testData/checker/Builders.jet b/idea/testData/checker/Builders.jet index 9913cd91bff..e956933d932 100644 --- a/idea/testData/checker/Builders.jet +++ b/idea/testData/checker/Builders.jet @@ -1,6 +1,6 @@ -import java.util.* +package html -package html { +import java.util.* abstract class Factory { abstract fun create() : T @@ -83,12 +83,6 @@ package html { return html } -} - -package foo { - -import html.* - fun result(args : Array) = html { head { @@ -118,4 +112,3 @@ fun result(args : Array) = } } } -} diff --git a/idea/testData/checker/ExtensionFunctions.jet b/idea/testData/checker/ExtensionFunctions.jet index 6fa9fe9adcc..f2a2d18ed0c 100644 --- a/idea/testData/checker/ExtensionFunctions.jet +++ b/idea/testData/checker/ExtensionFunctions.jet @@ -1,5 +1,3 @@ -// FILE: b.kt - fun Int?.optint() : Unit {} val Int?.optval : Unit = #() @@ -40,7 +38,7 @@ val T.foo : T fun Int.foo() = this // FILE: b.kt -package null_safety +//package null_safety fun parse(cmd: String): Command? { return null } class Command() { diff --git a/idea/testData/checker/GenericArgumentConsistency.jet b/idea/testData/checker/GenericArgumentConsistency.jet index aeee1d7ce3a..6b7a0b9be43 100644 --- a/idea/testData/checker/GenericArgumentConsistency.jet +++ b/idea/testData/checker/GenericArgumentConsistency.jet @@ -13,30 +13,30 @@ trait BB1 : BA1 {} trait BB2 : BA1, BB1 {} -package x { - trait AA1 {} - trait AB1 : AA1 {} - trait AB3 : AA1> {} - trait AB2 : AA1, AB1, AB3 {} -} +//package x { + trait xAA1 {} + trait xAB1 : xAA1 {} + trait xAB3 : xAA1> {} + trait xAB2 : xAA1, xAB1, xAB3 {} +//} -package x2 { - trait AA1 {} - trait AB1 : AA1 {} - trait AB3 : AA1> {} - trait AB2 : AA1, AB1, AB3 {} -} +//package x2 { + trait x2AA1 {} + trait x2AB1 : x2AA1 {} + trait x2AB3 : x2AA1> {} + trait x2AB2 : x2AA1, x2AB1, x2AB3 {} +//} -package x3 { - trait AA1 {} - trait AB1 : AA1 {} - trait AB3 : AA1> {} - trait AB2 : AA1, AB1, AB3 {} -} +//package x3 { + trait x3AA1 {} + trait x3AB1 : x3AA1 {} + trait x3AB3 : x3AA1> {} + trait x3AB2 : x3AA1, x3AB1, x3AB3 {} +//} -package sx2 { - trait AA1 {} - trait AB1 : AA1 {} - trait AB3 : AA1> {} - trait AB2 : AA1, AB1, AB3 {} -} \ No newline at end of file +//package sx2 { + trait sx2AA1 {} + trait sx2AB1 : sx2AA1 {} + trait sx2AB3 : sx2AA1> {} + trait sx2AB2 : sx2AA1, sx2AB1, sx2AB3 {} +//} \ No newline at end of file diff --git a/idea/testData/checker/LocalObjects.jet b/idea/testData/checker/LocalObjects.jet new file mode 100644 index 00000000000..d16ec106006 --- /dev/null +++ b/idea/testData/checker/LocalObjects.jet @@ -0,0 +1,21 @@ + object A { + val x : Int = 0 + } + + open class Foo { + fun foo() : Int = 1 + } + + fun test() { + A.x + val b = object : Foo { + } + b.foo() + + object B { + fun foo() {} + } + B.foo() + } + + val bb = B.foo() diff --git a/idea/testData/checker/NamespaceAsExpression.jet b/idea/testData/checker/NamespaceAsExpression.jet index 8c232a087b4..375bc9f9a5f 100644 --- a/idea/testData/checker/NamespaceAsExpression.jet +++ b/idea/testData/checker/NamespaceAsExpression.jet @@ -1,8 +1,4 @@ package root -package a { - -} - -val x = a +val x = root val y2 = package diff --git a/idea/testData/checker/NamespaceQualified.jet b/idea/testData/checker/NamespaceQualified.jet index 6930e945e8d..b76ee0d7f26 100644 --- a/idea/testData/checker/NamespaceQualified.jet +++ b/idea/testData/checker/NamespaceQualified.jet @@ -1,29 +1,8 @@ -package foobar +package a -package a { import java.* - - val a : util.List? = null - val a1 : List? = null - -} - -abstract class Foo() { - abstract val x : T -} - -package a { import java.util.* - val b : List? = a - val b1 : util.List? = a -} - -val x1 = a.a - -val y1 = a.b - - ///////////////////////////////////////////////////////////////////////// fun done(result : O) : Iteratee = StrangeIterateeImpl(result) @@ -44,7 +23,7 @@ class StrangeIterateeImpl(val obj: O) : Iteratee { abstract class Sum() : Iteratee { override fun process(item : Int) : Iteratee { - return foobar.done(item); + return a.done(item); } abstract override val isDone : Boolean abstract override val result : Int diff --git a/idea/testData/checker/NestedObjects.jet b/idea/testData/checker/NestedObjects.jet new file mode 100644 index 00000000000..838365bc5d3 --- /dev/null +++ b/idea/testData/checker/NestedObjects.jet @@ -0,0 +1,28 @@ +package nestedObjects + object A { + val b = B + val d = A.B.A + + object B { + val a = A + val e = B.A + + object A { + val a = A + val b = B + val x = nestedObjects.A.B.A + val y = this@A + } + } + + } + object B { + val b = B + val c = A.B + } + + val a = A + val b = B + val c = A.B + val d = A.B.A + val e = B.A.B diff --git a/idea/testData/checker/Objects.jet b/idea/testData/checker/Objects.jet index 9e03a5cc535..6ebfe2be0e6 100644 --- a/idea/testData/checker/Objects.jet +++ b/idea/testData/checker/Objects.jet @@ -1,4 +1,4 @@ -package toplevelObjectDeclarations { +package toplevelObjectDeclarations open class Foo(y : Int) { open fun foo() : Int = 1 } @@ -25,59 +25,4 @@ package toplevelObjectDeclarations { override fun foo() : Int = 1 } - val z = y.foo() -} - -package nestedObejcts { - object A { - val b = B - val d = A.B.A - - object B { - val a = A - val e = B.A - - object A { - val a = A - val b = B - val x = nestedObejcts.A.B.A - val y = this@A - } - } - - } - object B { - val b = B - val c = A.B - } - - val a = A - val b = B - val c = A.B - val d = A.B.A - val e = B.A.B -} - -package localObjects { - object A { - val x : Int = 0 - } - - open class Foo { - fun foo() : Int = 1 - } - - fun test() { - A.x - val b = object : Foo { - } - b.foo() - - object B { - fun foo() {} - } - B.foo() - } - - val bb = B.foo() -} + val z = y.foo() \ No newline at end of file diff --git a/idea/testData/checker/Override.jet b/idea/testData/checker/Override.jet index 0255c1ca816..a837c7f27a2 100644 --- a/idea/testData/checker/Override.jet +++ b/idea/testData/checker/Override.jet @@ -1,6 +1,5 @@ package override -package normal { trait MyTrait { fun foo() } @@ -35,42 +34,3 @@ package normal { fun foo() {} override fun bar() {} } -} - -package generics { - trait MyTrait { - fun foo(t: T) : T - } - - abstract class MyAbstractClass { - abstract fun bar(t: T) : T - } - - open class MyGenericClass : MyTrait, MyAbstractClass { - override fun foo(t: T) = t - override fun bar(t: T) = t - } - - class MyChildClass : MyGenericClass {} - class MyChildClass1 : MyGenericClass {} - class MyChildClass2 : MyGenericClass { - fun foo(t: T) = t - override fun bar(t: T) = t - } - - open class MyClass : MyTrait, MyAbstractClass { - override fun foo(i: Int) = i - override fun bar(s: String) = s - } - - class MyIllegalGenericClass1 : MyTrait, MyAbstractClass {} - class MyIllegalGenericClass2 : MyTrait, MyAbstractClass { - override fun foo(r: R) = r - } - class MyIllegalClass1 : MyTrait, MyAbstractClass {} - - class MyIllegalClass2 : MyTrait, MyAbstractClass { - fun foo(t: T) = t - fun bar(t: T) = t - } -} \ No newline at end of file diff --git a/idea/testData/checker/OverridesAndGenerics.jet b/idea/testData/checker/OverridesAndGenerics.jet new file mode 100644 index 00000000000..f4fb20575e5 --- /dev/null +++ b/idea/testData/checker/OverridesAndGenerics.jet @@ -0,0 +1,35 @@ + trait MyTrait { + fun foo(t: T) : T + } + + abstract class MyAbstractClass { + abstract fun bar(t: T) : T + } + + open class MyGenericClass : MyTrait, MyAbstractClass { + override fun foo(t: T) = t + override fun bar(t: T) = t + } + + class MyChildClass : MyGenericClass {} + class MyChildClass1 : MyGenericClass {} + class MyChildClass2 : MyGenericClass { + fun foo(t: T) = t + override fun bar(t: T) = t + } + + open class MyClass : MyTrait, MyAbstractClass { + override fun foo(i: Int) = i + override fun bar(s: String) = s + } + + class MyIllegalGenericClass1 : MyTrait, MyAbstractClass {} + class MyIllegalGenericClass2 : MyTrait, MyAbstractClass { + override fun foo(r: R) = r + } + class MyIllegalClass1 : MyTrait, MyAbstractClass {} + + class MyIllegalClass2 : MyTrait, MyAbstractClass { + fun foo(t: T) = t + fun bar(t: T) = t + } diff --git a/idea/testData/checker/QualifiedThis.jet b/idea/testData/checker/QualifiedThis.jet index dd5e5f9979e..5d35aa36d88 100644 --- a/idea/testData/checker/QualifiedThis.jet +++ b/idea/testData/checker/QualifiedThis.jet @@ -21,21 +21,3 @@ fun foo1() : Unit { this@a } -package closures { - class A(val a:Int) { - - class B() { - val x = this@B : B - val y = this@A : A - val z = this : B - val Int.xx = this : Int - fun Char.xx() : Any { - this : Char - val a = {Double.() -> this : Double + this@xx : Char} - val b = @a{Double.() -> this@a : Double + this@xx : Char} - val c = @a{() -> this@a + this@xx : Char} - return (@a{Double.() -> this@a : Double + this@xx : Char}) - } - } - } -} diff --git a/idea/testData/checker/QualifiedThisInClosures.jet b/idea/testData/checker/QualifiedThisInClosures.jet new file mode 100644 index 00000000000..3ad287a5d5c --- /dev/null +++ b/idea/testData/checker/QualifiedThisInClosures.jet @@ -0,0 +1,16 @@ + class A(val a:Int) { + + class B() { + val x = this@B : B + val y = this@A : A + val z = this : B + val Int.xx = this : Int + fun Char.xx() : Any { + this : Char + val a = {Double.() -> this : Double + this@xx : Char} + val b = @a{Double.() -> this@a : Double + this@xx : Char} + val c = @a{() -> this@a + this@xx : Char} + return (@a{Double.() -> this@a : Double + this@xx : Char}) + } + } + } diff --git a/idea/testData/checker/RecursiveTypeInference.jet b/idea/testData/checker/RecursiveTypeInference.jet index cbbc837604e..bb972daac31 100644 --- a/idea/testData/checker/RecursiveTypeInference.jet +++ b/idea/testData/checker/RecursiveTypeInference.jet @@ -1,42 +1,42 @@ -package a { - val foo = bar() +//package a { + val afoo = abar() - fun bar() = foo -} + fun abar() = afoo +//} -package b { - fun foo() = bar() +//package b { + fun bfoo() = bbar() - fun bar() = foo() -} + fun bbar() = bfoo() +//} -package c { - fun bazz() = bar() +//package c { + fun cbazz() = cbar() - fun foo() = bazz() + fun cfoo() = cbazz() - fun bar() = foo() -} + fun cbar() = cfoo() +//} -package ok { +//package ok { +// +// package a { + val okafoo = okabar() - package a { - val foo = bar() + fun okabar() : Int = okafoo +// } +// +// package b { + fun okbfoo() : Int = okbbar() - fun bar() : Int = foo - } + fun okbbar() = okbfoo() +// } +// +// package c { + fun okcbazz() = okcbar() - package b { - fun foo() : Int = bar() + fun okcfoo() : Int = okcbazz() - fun bar() = foo() - } - - package c { - fun bazz() = bar() - - fun foo() : Int = bazz() - - fun bar() = foo() - } -} + fun okcbar() = okcfoo() +// } +//} diff --git a/idea/testData/checker/Redeclarations.jet b/idea/testData/checker/Redeclarations.jet index b5fbb68145e..954c3de7f47 100644 --- a/idea/testData/checker/Redeclarations.jet +++ b/idea/testData/checker/Redeclarations.jet @@ -1,16 +1,12 @@ -package redeclarations { +//package redeclarations { object A { val x : Int = 0 val A = 1 } - package A { - class A {} - } - class A {} val A = 1 -} +//} diff --git a/idea/testData/checker/ResolveToJava.jet b/idea/testData/checker/ResolveToJava.jet index 34585040f7f..8386e48375d 100644 --- a/idea/testData/checker/ResolveToJava.jet +++ b/idea/testData/checker/ResolveToJava.jet @@ -43,10 +43,6 @@ fun test(l : java.util.List) { c : java.lang.Comparable? // Collections.sort(ArrayList()) - xxx.Class() } -package xxx { - import java.lang.Class; -} diff --git a/idea/testData/checker/regression/Jet121.jet b/idea/testData/checker/regression/Jet121.jet index 4dda2b95c51..bba231a4845 100644 --- a/idea/testData/checker/regression/Jet121.jet +++ b/idea/testData/checker/regression/Jet121.jet @@ -1,4 +1,4 @@ -package jet121 { +package jet121 fun box() : String { val answer = apply("OK") { String.() : Int -> get(0) @@ -10,5 +10,4 @@ package jet121 { fun apply(arg:String, f : String.() -> Int) : Int { return arg.f() - } -} \ No newline at end of file + } \ No newline at end of file From b453880d9ca828b2592f84e8e60a4a992b32110b Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 27 Dec 2011 14:59:24 +0400 Subject: [PATCH 5/7] Better message for recursive type inference --- .../src/org/jetbrains/jet/lang/diagnostics/Errors.java | 2 +- idea/testData/checker/RecursiveTypeInference.jet | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java index 616d3c84e78..7f6ce8305d4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java @@ -77,7 +77,7 @@ public interface Errors { DiagnosticWithParameterFactory REDUNDANT_MODIFIER_IN_GETTER = DiagnosticWithParameterFactory.create(WARNING, "Visibility modifiers are redundant in getter", DiagnosticParameters.MODIFIER); SimplePsiElementOnlyDiagnosticFactory TRAIT_CAN_NOT_BE_FINAL = SimplePsiElementOnlyDiagnosticFactory.create(ERROR, "Trait can not be final"); SimpleDiagnosticFactory SAFE_CALLS_ARE_NOT_ALLOWED_ON_NAMESPACES = SimpleDiagnosticFactory.create(ERROR, "Safe calls are not allowed on namespaces"); - SimpleDiagnosticFactory TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM = SimpleDiagnosticFactory.create(ERROR, "Type checking has run into a recursive problem"); // TODO: message + SimpleDiagnosticFactory TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM = SimpleDiagnosticFactory.create(ERROR, "Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly"); // TODO: message SimpleDiagnosticFactory RETURN_NOT_ALLOWED = SimpleDiagnosticFactory.create(ERROR, "'return' is not allowed here"); SimpleDiagnosticFactory PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE = SimpleDiagnosticFactory.create(ERROR, "Projections are not allowed for immediate arguments of a supertype"); SimpleDiagnosticFactory LABEL_NAME_CLASH = SimpleDiagnosticFactory.create(WARNING, "There is more than one label with such a name in this scope"); diff --git a/idea/testData/checker/RecursiveTypeInference.jet b/idea/testData/checker/RecursiveTypeInference.jet index cbbc837604e..38c6afcc26f 100644 --- a/idea/testData/checker/RecursiveTypeInference.jet +++ b/idea/testData/checker/RecursiveTypeInference.jet @@ -1,19 +1,19 @@ package a { val foo = bar() - fun bar() = foo + fun bar() = foo } package b { fun foo() = bar() - fun bar() = foo() + fun bar() = foo() } package c { fun bazz() = bar() - fun foo() = bazz() + fun foo() = bazz() fun bar() = foo() } From 7fcae647665b014331eeadd2bea906fb994d09c5 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 27 Dec 2011 15:20:31 +0400 Subject: [PATCH 6/7] Parser test data fixed --- compiler/testData/psi/FileStart_ERR.txt | 44 ++- compiler/testData/psi/NamespaceBlock.jet | 29 -- compiler/testData/psi/NamespaceBlock.txt | 146 -------- compiler/testData/psi/NamespaceBlockFirst.txt | 68 ++-- compiler/testData/psi/NamespaceBlock_ERR.jet | 42 --- compiler/testData/psi/NamespaceBlock_ERR.txt | 318 ------------------ compiler/testData/psi/NamespaceModifiers.jet | 10 +- compiler/testData/psi/NamespaceModifiers.txt | 45 +-- compiler/testData/psi/RootNamespace.txt | 197 +++++------ compiler/testData/psi/ShortAnnotations.jet | 1 - compiler/testData/psi/ShortAnnotations.txt | 60 ---- .../checker/RecursiveTypeInference.jet | 10 +- 12 files changed, 175 insertions(+), 795 deletions(-) delete mode 100644 compiler/testData/psi/NamespaceBlock.jet delete mode 100644 compiler/testData/psi/NamespaceBlock.txt delete mode 100644 compiler/testData/psi/NamespaceBlock_ERR.jet delete mode 100644 compiler/testData/psi/NamespaceBlock_ERR.txt diff --git a/compiler/testData/psi/FileStart_ERR.txt b/compiler/testData/psi/FileStart_ERR.txt index 1f3f4e6a14a..bda36bd0a99 100644 --- a/compiler/testData/psi/FileStart_ERR.txt +++ b/compiler/testData/psi/FileStart_ERR.txt @@ -4,19 +4,33 @@ JetFile: FileStart_ERR.jet PsiErrorElement:Expecting namespace or top level declaration PsiElement(DIV)('/') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - PsiElement(IDENTIFIER)('bar') - PsiErrorElement:A namespace block in '{...}' expected - - PsiWhiteSpace('\n') - IMPORT_DIRECTIVE - PsiElement(import)('import') + PsiErrorElement:Expecting namespace or top level declaration + PsiElement(namespace)('package') + PsiWhiteSpace(' ') + MODIFIER_LIST + ANNOTATION_ENTRY + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('bar') + PsiWhiteSpace('\n') + ANNOTATION_ENTRY + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('import') PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') \ No newline at end of file + ANNOTATION_ENTRY + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + PsiErrorElement:Expecting namespace or top level declaration + \ No newline at end of file diff --git a/compiler/testData/psi/NamespaceBlock.jet b/compiler/testData/psi/NamespaceBlock.jet deleted file mode 100644 index cf3ba05fd99..00000000000 --- a/compiler/testData/psi/NamespaceBlock.jet +++ /dev/null @@ -1,29 +0,0 @@ -package foo.bar.goo - -import foo as bar - -package foof { - import foo.bar.*; - - class Foo {} - - package bar { - class Bar {} - - package ns { - class X - - class Y - } - } -} - - -class Bar {} - -package foo {} - -package bar { - import sdf - -} \ No newline at end of file diff --git a/compiler/testData/psi/NamespaceBlock.txt b/compiler/testData/psi/NamespaceBlock.txt deleted file mode 100644 index 33b0d00d72a..00000000000 --- a/compiler/testData/psi/NamespaceBlock.txt +++ /dev/null @@ -1,146 +0,0 @@ -JetFile: NamespaceBlock.jet - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiElement(IDENTIFIER)('goo') - PsiWhiteSpace('\n\n') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiWhiteSpace(' ') - PsiElement(as)('as') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace('\n\n') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foof') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiElement(MUL)('*') - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n\n ') - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Foo') - PsiWhiteSpace(' ') - TYPE_PARAMETER_LIST - - CLASS_BODY - PsiElement(LBRACE)('{') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n ') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Bar') - PsiWhiteSpace(' ') - TYPE_PARAMETER_LIST - - CLASS_BODY - PsiElement(LBRACE)('{') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n ') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('ns') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('X') - PsiWhiteSpace('\n\n ') - TYPE_PARAMETER_LIST - - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Y') - PsiWhiteSpace('\n ') - TYPE_PARAMETER_LIST - - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n ') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n\n') - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Bar') - TYPE_PARAMETER_LIST - PsiElement(LT)('<') - TYPE_PARAMETER - PsiElement(IDENTIFIER)('T') - PsiElement(GT)('>') - PsiWhiteSpace(' ') - CLASS_BODY - PsiElement(LBRACE)('{') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foo') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - NAMESPACE_BODY - - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('sdf') - PsiWhiteSpace('\n\n') - PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/compiler/testData/psi/NamespaceBlockFirst.txt b/compiler/testData/psi/NamespaceBlockFirst.txt index fcb33b0afae..8c3fb55c619 100644 --- a/compiler/testData/psi/NamespaceBlockFirst.txt +++ b/compiler/testData/psi/NamespaceBlockFirst.txt @@ -2,37 +2,43 @@ JetFile: NamespaceBlockFirst.jet NAMESPACE NAMESPACE_HEADER - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foobar') - PsiWhiteSpace(' ') + PsiErrorElement:Expecting namespace or top level declaration + PsiElement(namespace)('package') + PsiWhiteSpace(' ') + MODIFIER_LIST + ANNOTATION_ENTRY + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foobar') + PsiWhiteSpace(' ') + PsiErrorElement:Expecting namespace or top level declaration PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - PROPERTY - PsiElement(val)('val') - PsiWhiteSpace(' ') + PsiWhiteSpace('\n ') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('a') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiWhiteSpace('\n ') + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('b') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foobar') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') - PsiWhiteSpace(' ') - PsiElement(EQ)('=') - PsiWhiteSpace(' ') - INTEGER_CONSTANT - PsiElement(INTEGER_LITERAL)('1') - PsiWhiteSpace('\n ') - PROPERTY - PsiElement(val)('val') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('b') - PsiWhiteSpace(' ') - PsiElement(EQ)('=') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foobar') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('a') - PsiWhiteSpace('\n') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting namespace or top level declaration PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/compiler/testData/psi/NamespaceBlock_ERR.jet b/compiler/testData/psi/NamespaceBlock_ERR.jet deleted file mode 100644 index a22d5edaa88..00000000000 --- a/compiler/testData/psi/NamespaceBlock_ERR.jet +++ /dev/null @@ -1,42 +0,0 @@ -package foo.bar.goo - -import foo as -import foo. -import foo.bar. -import foo. as bar - -package foof { - import foo.bar.* as bar - import foo as ; - import foo. ; - import foo.bar. ; - import foo. as bar ; - import foo.bar.* as bar ; - import foo.bar.* as ; - - package foo - - class Foo {} - package { - class Bar {} - - package ns { - class X - - class Y - } - } -} - -dsfgd - -class Bar {} - -package foo - -package {} - -package bar { - import sdf - -} \ No newline at end of file diff --git a/compiler/testData/psi/NamespaceBlock_ERR.txt b/compiler/testData/psi/NamespaceBlock_ERR.txt deleted file mode 100644 index 8d418eb0f6c..00000000000 --- a/compiler/testData/psi/NamespaceBlock_ERR.txt +++ /dev/null @@ -1,318 +0,0 @@ -JetFile: NamespaceBlock_ERR.jet - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiElement(IDENTIFIER)('goo') - PsiWhiteSpace('\n\n') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiWhiteSpace(' ') - PsiElement(as)('as') - PsiWhiteSpace('\n') - PsiElement(IDENTIFIER)('import') - PsiWhiteSpace(' ') - NAMESPACE - MODIFIER_LIST - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - PsiWhiteSpace('\n') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('import') - PsiWhiteSpace(' ') - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - USER_TYPE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiWhiteSpace('\n') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('import') - PsiWhiteSpace(' ') - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiErrorElement:Expecting type name - PsiElement(as)('as') - PsiWhiteSpace(' ') - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace('\n\n') - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foof') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiElement(MUL)('*') - PsiWhiteSpace(' ') - PsiErrorElement:Cannot rename a all imported items to one identifier - PsiElement(as)('as') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace('\n ') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiWhiteSpace(' ') - PsiElement(as)('as') - PsiErrorElement:Expecting identifier - - PsiWhiteSpace(' ') - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n ') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiErrorElement:Qualified name must be a '.'-separated identifier list - - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n ') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiErrorElement:Qualified name must be a '.'-separated identifier list - - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n ') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiErrorElement:Qualified name must be a '.'-separated identifier list - - PsiElement(as)('as') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace(' ') - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n ') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiElement(MUL)('*') - PsiWhiteSpace(' ') - PsiErrorElement:Cannot rename a all imported items to one identifier - PsiElement(as)('as') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace(' ') - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n ') - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - DOT_QUALIFIED_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(DOT)('.') - PsiElement(MUL)('*') - PsiWhiteSpace(' ') - PsiErrorElement:Cannot rename a all imported items to one identifier - PsiElement(as)('as') - PsiWhiteSpace(' ') - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n\n ') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foo') - PsiErrorElement:A namespace block in '{...}' expected - - PsiWhiteSpace('\n\n ') - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Foo') - PsiWhiteSpace(' ') - TYPE_PARAMETER_LIST - - CLASS_BODY - PsiElement(LBRACE)('{') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n ') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiErrorElement:Expecting namespace name - - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Bar') - PsiWhiteSpace(' ') - TYPE_PARAMETER_LIST - - CLASS_BODY - PsiElement(LBRACE)('{') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n ') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('ns') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('X') - PsiWhiteSpace('\n\n ') - TYPE_PARAMETER_LIST - - CLASS - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Y') - PsiWhiteSpace('\n ') - TYPE_PARAMETER_LIST - - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n ') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n') - CLASS - MODIFIER_LIST - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('dsfgd') - PsiWhiteSpace('\n\n') - PsiElement(class)('class') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('Bar') - TYPE_PARAMETER_LIST - PsiElement(LT)('<') - TYPE_PARAMETER - PsiElement(IDENTIFIER)('T') - PsiElement(GT)('>') - PsiWhiteSpace(' ') - CLASS_BODY - PsiElement(LBRACE)('{') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foo') - PsiErrorElement:A namespace block in '{...}' expected - - PsiWhiteSpace('\n\n') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiErrorElement:Expecting namespace name - - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - NAMESPACE_BODY - - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n\n') - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - IMPORT_DIRECTIVE - PsiElement(import)('import') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('sdf') - PsiWhiteSpace('\n\n') - PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/compiler/testData/psi/NamespaceModifiers.jet b/compiler/testData/psi/NamespaceModifiers.jet index de65a560b82..ebb056dda85 100644 --- a/compiler/testData/psi/NamespaceModifiers.jet +++ b/compiler/testData/psi/NamespaceModifiers.jet @@ -1,9 +1 @@ -public [a] package name; - -[a] package a { - val foo - - private package b { - - } -} \ No newline at end of file +public [a] package name \ No newline at end of file diff --git a/compiler/testData/psi/NamespaceModifiers.txt b/compiler/testData/psi/NamespaceModifiers.txt index 67db2bc7e0c..222d0a86884 100644 --- a/compiler/testData/psi/NamespaceModifiers.txt +++ b/compiler/testData/psi/NamespaceModifiers.txt @@ -16,47 +16,4 @@ JetFile: NamespaceModifiers.jet PsiWhiteSpace(' ') PsiElement(namespace)('package') PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('name') - PsiElement(SEMICOLON)(';') - PsiWhiteSpace('\n\n') - NAMESPACE - MODIFIER_LIST - ANNOTATION - PsiElement(LBRACKET)('[') - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('a') - PsiElement(RBRACKET)(']') - PsiWhiteSpace(' ') - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('a') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - PROPERTY - PsiElement(val)('val') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foo') - PsiWhiteSpace('\n\n ') - NAMESPACE - MODIFIER_LIST - PsiElement(private)('private') - PsiWhiteSpace(' ') - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('b') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n\n ') - NAMESPACE_BODY - - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n') - PsiElement(RBRACE)('}') \ No newline at end of file + PsiElement(IDENTIFIER)('name') \ No newline at end of file diff --git a/compiler/testData/psi/RootNamespace.txt b/compiler/testData/psi/RootNamespace.txt index 1fd3472ebed..9ca9315f7cf 100644 --- a/compiler/testData/psi/RootNamespace.txt +++ b/compiler/testData/psi/RootNamespace.txt @@ -16,112 +16,119 @@ JetFile: RootNamespace.jet PsiWhiteSpace('\n\n') TYPE_PARAMETER_LIST - NAMESPACE - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - PsiElement(IDENTIFIER)('bar') - PsiWhiteSpace(' ') + PsiErrorElement:Expecting namespace or top level declaration + PsiElement(namespace)('package') + PsiWhiteSpace(' ') + MODIFIER_LIST + ANNOTATION_ENTRY + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('bar') + PsiWhiteSpace(' ') + PsiErrorElement:Expecting namespace or top level declaration PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - NAMESPACE_BODY - FUN - PsiElement(fun)('fun') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('foo') - VALUE_PARAMETER_LIST - PsiElement(LPAR)('(') - PsiElement(RPAR)(')') - PsiWhiteSpace(' ') - BLOCK - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') + PsiWhiteSpace('\n ') + FUN + PsiElement(fun)('fun') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('foo') + VALUE_PARAMETER_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION - DOT_QUALIFIED_EXPRESSION - DOT_QUALIFIED_EXPRESSION - ROOT_NAMESPACE - PsiElement(namespace)('package') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') + ROOT_NAMESPACE + PsiElement(namespace)('package') PsiElement(DOT)('.') REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('X') - PsiWhiteSpace('\n ') + PsiElement(IDENTIFIER)('foo') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('bar') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('X') + PsiWhiteSpace('\n ') + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION - DOT_QUALIFIED_EXPRESSION - DOT_QUALIFIED_EXPRESSION - ROOT_NAMESPACE - PsiElement(namespace)('package') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') + ROOT_NAMESPACE + PsiElement(namespace)('package') PsiElement(DOT)('.') - CALL_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('X') - VALUE_ARGUMENT_LIST - PsiElement(LPAR)('(') - PsiElement(RPAR)(')') - PsiWhiteSpace('\n ') - WHEN - PsiElement(when)('when') - PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('bar') + PsiElement(DOT)('.') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('X') + VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') + PsiWhiteSpace('\n ') + WHEN + PsiElement(when)('when') + PsiWhiteSpace(' ') + PsiElement(LPAR)('(') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + WHEN_ENTRY + WHEN_CONDITION_IS_PATTERN + PsiElement(is)('is') PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - PsiWhiteSpace('\n ') - WHEN_ENTRY - WHEN_CONDITION_IS_PATTERN - PsiElement(is)('is') - PsiWhiteSpace(' ') - DECOMPOSER_PATTERN + DECOMPOSER_PATTERN + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION - DOT_QUALIFIED_EXPRESSION - DOT_QUALIFIED_EXPRESSION - ROOT_NAMESPACE - PsiElement(namespace)('package') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') + ROOT_NAMESPACE + PsiElement(namespace)('package') PsiElement(DOT)('.') REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('X') - PsiWhiteSpace(' ') - DECOMPOSER_ARGUMENT_LIST - PsiElement(HASH)('#') - PsiElement(LPAR)('(') - TUPLE_PATTERN_ENTRY - TYPE_PATTERN - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('x') - PsiElement(RPAR)(')') - PsiWhiteSpace(' ') - PsiElement(ARROW)('->') - PsiWhiteSpace(' ') - BLOCK - PsiElement(LBRACE)('{') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n ') + PsiElement(IDENTIFIER)('foo') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('bar') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('X') + PsiWhiteSpace(' ') + DECOMPOSER_ARGUMENT_LIST + PsiElement(HASH)('#') + PsiElement(LPAR)('(') + TUPLE_PATTERN_ENTRY + TYPE_PATTERN + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('x') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + PsiElement(ARROW)('->') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') PsiElement(RBRACE)('}') - PsiWhiteSpace('\n ') - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n') + PsiErrorElement:Expecting namespace or top level declaration PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/compiler/testData/psi/ShortAnnotations.jet b/compiler/testData/psi/ShortAnnotations.jet index e6137d0a754..3109d77a93c 100644 --- a/compiler/testData/psi/ShortAnnotations.jet +++ b/compiler/testData/psi/ShortAnnotations.jet @@ -1,6 +1,5 @@ foo bar(1) buzz(1) zoo package aa -foo bar(1) buzz(1) zoo package a {} foo bar(1) buzz(1) zoo class A foo bar(1) buzz(1) zoo object B foo bar(1) buzz(1) zoo fun a() {} diff --git a/compiler/testData/psi/ShortAnnotations.txt b/compiler/testData/psi/ShortAnnotations.txt index a559bce1ddd..8885d7cc0eb 100644 --- a/compiler/testData/psi/ShortAnnotations.txt +++ b/compiler/testData/psi/ShortAnnotations.txt @@ -54,66 +54,6 @@ JetFile: ShortAnnotations.jet PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('aa') PsiWhiteSpace('\n\n') - NAMESPACE - MODIFIER_LIST - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiWhiteSpace(' ') - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - VALUE_ARGUMENT_LIST - PsiElement(LPAR)('(') - VALUE_ARGUMENT - INTEGER_CONSTANT - PsiElement(INTEGER_LITERAL)('1') - PsiElement(RPAR)(')') - PsiWhiteSpace(' ') - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('buzz') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('T') - PsiElement(GT)('>') - VALUE_ARGUMENT_LIST - PsiElement(LPAR)('(') - VALUE_ARGUMENT - INTEGER_CONSTANT - PsiElement(INTEGER_LITERAL)('1') - PsiElement(RPAR)(')') - PsiWhiteSpace(' ') - ANNOTATION_ENTRY - CONSTRUCTOR_CALLEE - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('zoo') - PsiWhiteSpace(' ') - NAMESPACE_HEADER - PsiElement(namespace)('package') - PsiWhiteSpace(' ') - PsiElement(IDENTIFIER)('a') - PsiWhiteSpace(' ') - PsiElement(LBRACE)('{') - NAMESPACE_BODY - - PsiElement(RBRACE)('}') - PsiWhiteSpace('\n') CLASS MODIFIER_LIST ANNOTATION_ENTRY diff --git a/idea/testData/checker/RecursiveTypeInference.jet b/idea/testData/checker/RecursiveTypeInference.jet index 8ea96b5c198..fff8972fd72 100644 --- a/idea/testData/checker/RecursiveTypeInference.jet +++ b/idea/testData/checker/RecursiveTypeInference.jet @@ -1,19 +1,19 @@ //package a { val afoo = abar() - fun bar() = foo -} + fun abar() = afoo +//} //package b { fun bfoo() = bbar() - fun bar() = foo() -} + fun bbar() = bfoo() +//} //package c { fun cbazz() = cbar() - fun foo() = bazz() + fun cfoo() = cbazz() fun cbar() = cfoo() //} From 25f7c139e041989f7c3d4bc4c500994f809c89f2 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 27 Dec 2011 15:51:13 +0400 Subject: [PATCH 7/7] Remove invalid tests (valid tests are already exist) --- .../quickfix/autoImports/afterImportSingleFile.kt | 12 ------------ .../autoImports/beforeImportSingleFile.kt | 10 ---------- .../quickfix/classImport/afterToImport2.kt | 15 --------------- .../quickfix/classImport/beforeToImport2.kt | 13 ------------- 4 files changed, 50 deletions(-) delete mode 100644 idea/testData/quickfix/autoImports/afterImportSingleFile.kt delete mode 100644 idea/testData/quickfix/autoImports/beforeImportSingleFile.kt delete mode 100644 idea/testData/quickfix/classImport/afterToImport2.kt delete mode 100644 idea/testData/quickfix/classImport/beforeToImport2.kt diff --git a/idea/testData/quickfix/autoImports/afterImportSingleFile.kt b/idea/testData/quickfix/autoImports/afterImportSingleFile.kt deleted file mode 100644 index 56c6f85e48a..00000000000 --- a/idea/testData/quickfix/autoImports/afterImportSingleFile.kt +++ /dev/null @@ -1,12 +0,0 @@ -// "Import Class" "true" -package a - -import a.b.M - -fun test() { - val v = M -} - -package b { - class M() { } -} \ No newline at end of file diff --git a/idea/testData/quickfix/autoImports/beforeImportSingleFile.kt b/idea/testData/quickfix/autoImports/beforeImportSingleFile.kt deleted file mode 100644 index 8f5fba3bc80..00000000000 --- a/idea/testData/quickfix/autoImports/beforeImportSingleFile.kt +++ /dev/null @@ -1,10 +0,0 @@ -// "Import Class" "true" -package a - -fun test() { - val v = M -} - -package b { - class M() { } -} \ No newline at end of file diff --git a/idea/testData/quickfix/classImport/afterToImport2.kt b/idea/testData/quickfix/classImport/afterToImport2.kt deleted file mode 100644 index dd84c5795bd..00000000000 --- a/idea/testData/quickfix/classImport/afterToImport2.kt +++ /dev/null @@ -1,15 +0,0 @@ -// "Remove initializer from property" "true" -package a - -import java.util.Collections - -package b { - -import java.util.List - -class M { - trait A { - abstract val l : List? - } -} -} \ No newline at end of file diff --git a/idea/testData/quickfix/classImport/beforeToImport2.kt b/idea/testData/quickfix/classImport/beforeToImport2.kt deleted file mode 100644 index c22f5e31656..00000000000 --- a/idea/testData/quickfix/classImport/beforeToImport2.kt +++ /dev/null @@ -1,13 +0,0 @@ -// "Remove initializer from property" "true" -package a - -import java.util.Collections - -package b { - -class M { - trait A { - abstract val l = Collections.emptyList() - } -} -} \ No newline at end of file