diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 52ecde3cb7d..fbf88e07bcf 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -590,14 +590,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { iv.load(0, classType); iv.load(frameMap.getOuterThisIndex(), type); iv.putfield(classname, fieldName, interfaceDesc); - - Type outerType = typeMapper.mapType(outerDescriptor.getDefaultType()); - MethodVisitor outer = v.newMethod(myClass, ACC_PUBLIC, JvmStdlibNames.JET_OBJECT_GET_OUTER_OBJECT_METHOD, "()Ljet/JetObject;", null, null); - outer.visitCode(); - outer.visitVarInsn(ALOAD, 0); - outer.visitFieldInsn(GETFIELD, classname, "this$0", outerType.getDescriptor()); - outer.visitInsn(ARETURN); - FunctionCodegen.endVisit(outer, JvmStdlibNames.JET_OBJECT_GET_OUTER_OBJECT_METHOD, myClass); } if(closure != null) { @@ -937,19 +929,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { return myClass instanceof JetClass ? ((JetClass) myClass).getClassObject() : null; } - private void staticTypeInfoField() { - v.newField(myClass, ACC_PUBLIC | ACC_FINAL | 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", JvmStdlibNames.JET_OBJECT_GET_TYPEINFO_METHOD, "(Ljava/lang/Class;Z)Ljet/TypeInfo;"); - v.putstatic(typeMapper.mapType(descriptor.getDefaultType(), kind).getInternalName(), "$staticTypeInfo", "Ljet/TypeInfo;"); - } - }); - } - /** * Return pairs of descriptors. First is member of this that should be implemented by delegating to trait, diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 82d05c7a8f1..6538bc15a06 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -18,7 +18,6 @@ package org.jetbrains.jet.codegen; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; -import jet.JetObject; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; @@ -42,7 +41,6 @@ import static org.objectweb.asm.Opcodes.*; public class JetTypeMapper { public static final Type TYPE_OBJECT = Type.getObjectType("java/lang/Object"); public static final Type TYPE_THROWABLE = Type.getObjectType("java/lang/Throwable"); - public static final Type TYPE_JET_OBJECT = Type.getType(JetObject.class); public static final Type TYPE_NOTHING = Type.getObjectType("jet/Nothing"); public static final Type JL_NUMBER_TYPE = Type.getObjectType("java/lang/Number"); public static final Type JL_STRING_BUILDER = Type.getObjectType("java/lang/StringBuilder"); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 0376b572411..b8661426571 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -1364,19 +1364,6 @@ public class JavaDescriptorResolver { if (ownerClassName.equals("java.lang.Object")) { return null; } - - if (method.getName().equals(JvmStdlibNames.JET_OBJECT_GET_TYPEINFO_METHOD) && method.getParameters().size() == 0) { - return null; - } - - if (method.getName().equals(JvmStdlibNames.JET_OBJECT_GET_OUTER_OBJECT_METHOD) && method.getParameters().size() == 0) { - return null; - } - - // TODO: check signature - if (method.getName().equals(JvmAbi.SET_TYPE_INFO_METHOD)) { - return null; - } } ClassOrNamespaceDescriptor classDescriptor; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java index cfaa4ad147a..f8971e7aca3 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java @@ -116,10 +116,6 @@ class JavaDescriptorResolverHelper { // TODO: some java properties too if (method.getJetMethod().kind() == JvmStdlibNames.JET_METHOD_KIND_PROPERTY) { - if (method.getName().equals(JvmStdlibNames.JET_OBJECT_GET_TYPEINFO_METHOD)) { - continue; - } - int i = 0; TypeSource receiverType; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java index d6678d76a9d..eaddd5caefa 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java @@ -25,8 +25,6 @@ public class JvmAbi { public static final String GETTER_PREFIX = "get"; public static final String SETTER_PREFIX = "set"; public static final String PACKAGE_CLASS = "namespace"; - public static final String SET_TYPE_INFO_METHOD = "$setTypeInfo"; - public static final String TYPE_INFO_FIELD = "$typeInfo"; public static final JvmClassName JETBRAINS_NOT_NULL_ANNOTATION = new JvmClassName("org.jetbrains.annotations.NotNull"); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmStdlibNames.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmStdlibNames.java index a7790be0d04..f3ea31002c4 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmStdlibNames.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmStdlibNames.java @@ -65,10 +65,6 @@ public class JvmStdlibNames { public static final JvmClassName JET_OBJECT = new JvmClassName("jet.JetObject"); - public static final String JET_OBJECT_GET_TYPEINFO_METHOD = "getTypeInfo"; - public static final String JET_OBJECT_GET_OUTER_OBJECT_METHOD = "getOuterObject"; - - private JvmStdlibNames() { } } diff --git a/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java b/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java index c3fe85738f1..59a57b3c0b0 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java @@ -16,7 +16,6 @@ package org.jetbrains.jet.codegen; -import jet.JetObject; import jet.TypeCastException; import java.lang.reflect.Method; diff --git a/stdlib/src/jet/ByteRange.java b/stdlib/src/jet/ByteRange.java index f6b5d883d91..38dba4a6b9d 100644 --- a/stdlib/src/jet/ByteRange.java +++ b/stdlib/src/jet/ByteRange.java @@ -16,7 +16,7 @@ package jet; -public final class ByteRange implements Range, ByteIterable, JetObject { +public final class ByteRange implements Range, ByteIterable { private final byte start; private final int count; @@ -72,11 +72,6 @@ public final class ByteRange implements Range, ByteIterable, JetObject { return new MyIterator(start, count, 1); } - @Override - public JetObject getOuterObject() { - return null; - } - public static ByteRange count(int length) { return new ByteRange((byte) 0, length); } @@ -119,10 +114,5 @@ public final class ByteRange implements Range, ByteIterable, JetObject { return (byte) (cur - step); } } - - @Override - public JetObject getOuterObject() { - return null; - } } } diff --git a/stdlib/src/jet/CharRange.java b/stdlib/src/jet/CharRange.java index 970a7a96781..a884f11d36f 100644 --- a/stdlib/src/jet/CharRange.java +++ b/stdlib/src/jet/CharRange.java @@ -16,7 +16,7 @@ package jet; -public final class CharRange implements Range, CharIterable, JetObject { +public final class CharRange implements Range, CharIterable { private final char start; private final int count; @@ -72,11 +72,6 @@ public final class CharRange implements Range, CharIterable, JetObjec return new MyIterator(start, count, 1); } - @Override - public JetObject getOuterObject() { - return null; - } - public static CharRange count(int length) { return new CharRange((char) 0, length); } @@ -119,10 +114,5 @@ public final class CharRange implements Range, CharIterable, JetObjec return (char) (cur - step); } } - - @Override - public JetObject getOuterObject() { - return null; - } } } diff --git a/stdlib/src/jet/DefaultJetObject.java b/stdlib/src/jet/DefaultJetObject.java index cf2c5af2440..3666b8963e4 100644 --- a/stdlib/src/jet/DefaultJetObject.java +++ b/stdlib/src/jet/DefaultJetObject.java @@ -19,12 +19,7 @@ package jet; /** * @author alex.tkachman */ -public class DefaultJetObject implements JetObject { +public class DefaultJetObject { protected DefaultJetObject() { } - - @Override - public JetObject getOuterObject() { - return null; - } } diff --git a/stdlib/src/jet/DoubleRange.java b/stdlib/src/jet/DoubleRange.java index 4ade6d94b3b..3fa771db23d 100644 --- a/stdlib/src/jet/DoubleRange.java +++ b/stdlib/src/jet/DoubleRange.java @@ -16,7 +16,7 @@ package jet; -public final class DoubleRange implements Range, JetObject { +public final class DoubleRange implements Range { private final double start; private final double size; @@ -61,11 +61,6 @@ public final class DoubleRange implements Range, JetObject { return new DoubleRange(getEnd(), -size); } - @Override - public JetObject getOuterObject() { - return null; - } - public static DoubleRange count(int length) { return new DoubleRange(0, length); } @@ -110,10 +105,5 @@ public final class DoubleRange implements Range, JetObject { return cur - step; } } - - @Override - public JetObject getOuterObject() { - return null; - } } } diff --git a/stdlib/src/jet/FloatRange.java b/stdlib/src/jet/FloatRange.java index 66879c741cd..06c15b9ca2a 100644 --- a/stdlib/src/jet/FloatRange.java +++ b/stdlib/src/jet/FloatRange.java @@ -16,7 +16,7 @@ package jet; -public final class FloatRange implements Range, JetObject { +public final class FloatRange implements Range { private final float start; private final float size; @@ -61,12 +61,6 @@ public final class FloatRange implements Range, JetObject { return new FloatRange(getEnd(), -size); } - - @Override - public JetObject getOuterObject() { - return null; - } - public static FloatRange count(int length) { return new FloatRange(0, length); } @@ -111,10 +105,5 @@ public final class FloatRange implements Range, JetObject { return cur - step; } } - - @Override - public JetObject getOuterObject() { - return null; - } } } diff --git a/stdlib/src/jet/IntRange.java b/stdlib/src/jet/IntRange.java index 9889909d5f7..2e5b799dac4 100644 --- a/stdlib/src/jet/IntRange.java +++ b/stdlib/src/jet/IntRange.java @@ -16,7 +16,7 @@ package jet; -public final class IntRange implements Range, IntIterable, JetObject { +public final class IntRange implements Range, IntIterable { private final int start; private final int count; @@ -72,11 +72,6 @@ public final class IntRange implements Range, IntIterable, JetObject { return new MyIterator(start, count, 1); } - @Override - public JetObject getOuterObject() { - return null; - } - public static IntRange count(int length) { return new IntRange(0, length); } @@ -119,10 +114,5 @@ public final class IntRange implements Range, IntIterable, JetObject { return cur - step; } } - - @Override - public JetObject getOuterObject() { - return null; - } } } diff --git a/stdlib/src/jet/Iterable.java b/stdlib/src/jet/Iterable.java index 653bccb4900..e7dd9b72118 100644 --- a/stdlib/src/jet/Iterable.java +++ b/stdlib/src/jet/Iterable.java @@ -16,6 +16,6 @@ package jet; -public interface Iterable extends JetObject { +public interface Iterable { Iterator iterator (); } diff --git a/stdlib/src/jet/Iterator.java b/stdlib/src/jet/Iterator.java index 723cfcc82e4..2a9cd54ed1f 100644 --- a/stdlib/src/jet/Iterator.java +++ b/stdlib/src/jet/Iterator.java @@ -18,7 +18,7 @@ package jet; import jet.runtime.typeinfo.JetMethod; -public interface Iterator extends JetObject { +public interface Iterator { @JetMethod(kind = JetMethod.KIND_PROPERTY) boolean getHasNext(); T next (); diff --git a/stdlib/src/jet/JetObject.java b/stdlib/src/jet/JetObject.java index 38ce3ee8776..9fc56207fa2 100644 --- a/stdlib/src/jet/JetObject.java +++ b/stdlib/src/jet/JetObject.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2012 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,5 +21,4 @@ package jet; * @author alex.tkachman */ public interface JetObject { - JetObject getOuterObject(); } diff --git a/stdlib/src/jet/LongRange.java b/stdlib/src/jet/LongRange.java index 7f6a89b9dd5..6477452e4e1 100644 --- a/stdlib/src/jet/LongRange.java +++ b/stdlib/src/jet/LongRange.java @@ -16,7 +16,7 @@ package jet; -public final class LongRange implements Range, LongIterable, JetObject { +public final class LongRange implements Range, LongIterable { private final long start; private final long count; @@ -72,11 +72,6 @@ public final class LongRange implements Range, LongIterable, JetObject { return new MyIterator(start, count, 1); } - @Override - public JetObject getOuterObject() { - return null; - } - public static LongRange count(int length) { return new LongRange(0, length); } @@ -119,10 +114,5 @@ public final class LongRange implements Range, LongIterable, JetObject { return (cur - step); } } - - @Override - public JetObject getOuterObject() { - return null; - } } } diff --git a/stdlib/src/jet/ShortRange.java b/stdlib/src/jet/ShortRange.java index f184b1e41e5..018f958093a 100644 --- a/stdlib/src/jet/ShortRange.java +++ b/stdlib/src/jet/ShortRange.java @@ -16,7 +16,7 @@ package jet; -public final class ShortRange implements Range, ShortIterable, JetObject { +public final class ShortRange implements Range, ShortIterable { private final short start; private final int count; @@ -72,11 +72,6 @@ public final class ShortRange implements Range, ShortIterable, JetObject return new MyIterator(start, count, 1); } - @Override - public JetObject getOuterObject() { - return null; - } - public static ShortRange count(int length) { return new ShortRange((byte) 0, length); } @@ -119,10 +114,5 @@ public final class ShortRange implements Range, ShortIterable, JetObject return (short) (cur - step); } } - - @Override - public JetObject getOuterObject() { - return null; - } } } diff --git a/stdlib/src/jet/Tuple0.java b/stdlib/src/jet/Tuple0.java index 2272a4e9cc9..89dd3aeb110 100644 --- a/stdlib/src/jet/Tuple0.java +++ b/stdlib/src/jet/Tuple0.java @@ -19,7 +19,7 @@ package jet; /** * @author alex.tkachman */ -public class Tuple0 implements JetObject { +public class Tuple0 { public static final Tuple0 INSTANCE = new Tuple0(); private Tuple0() { @@ -39,9 +39,4 @@ public class Tuple0 implements JetObject { public int hashCode() { return 239; } - - @Override - public JetObject getOuterObject() { - return null; - } } diff --git a/stdlib/src/jet/runtime/ArrayIterator.java b/stdlib/src/jet/runtime/ArrayIterator.java index e895179185e..21ff8b20594 100644 --- a/stdlib/src/jet/runtime/ArrayIterator.java +++ b/stdlib/src/jet/runtime/ArrayIterator.java @@ -21,7 +21,7 @@ import jet.*; /** * @author alex.tkachman */ -public abstract class ArrayIterator implements Iterator, JetObject { +public abstract class ArrayIterator implements Iterator { private final int size; protected int index; @@ -46,11 +46,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public T next() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static Iterator iterator(T[] array) { @@ -74,11 +69,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public byte nextByte() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static ByteIterator iterator(byte[] array) { @@ -103,11 +93,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public short nextShort() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static ShortIterator iterator(short[] array) { @@ -132,11 +117,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public int nextInt() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static IntIterator iterator(int[] array) { @@ -161,11 +141,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public long nextLong() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static LongIterator iterator(long[] array) { @@ -190,11 +165,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public float nextFloat() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static FloatIterator iterator(float[] array) { @@ -219,11 +189,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public double nextDouble() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static DoubleIterator iterator(double[] array) { @@ -248,11 +213,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public char nextChar() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static CharIterator iterator(char[] array) { @@ -277,11 +237,6 @@ public abstract class ArrayIterator implements Iterator, JetObject { public boolean nextBoolean() { return array[index++]; } - - @Override - public JetObject getOuterObject() { - return null; - } } public static BooleanIterator iterator(boolean[] array) {