Make Array.indices extension property, move to stdlib
This is not something that needs to be intrinsified. Note that compiler optimizations are still possible and the fact whether 'indices' is a member or an extension is irrelevant to the optimizer
This commit is contained in:
@@ -1,48 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2013 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.codegen.intrinsics;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.codegen.ExpressionCodegen;
|
||||
import org.jetbrains.jet.codegen.StackValue;
|
||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||
import org.jetbrains.org.objectweb.asm.Type;
|
||||
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.INT_RANGE_TYPE;
|
||||
import static org.jetbrains.org.objectweb.asm.Type.INT_TYPE;
|
||||
|
||||
public class ArrayIndices extends IntrinsicMethod {
|
||||
@NotNull
|
||||
@Override
|
||||
public Type generateImpl(
|
||||
@NotNull ExpressionCodegen codegen,
|
||||
@NotNull InstructionAdapter v,
|
||||
@NotNull Type returnType,
|
||||
PsiElement element,
|
||||
List<JetExpression> arguments,
|
||||
StackValue receiver
|
||||
) {
|
||||
receiver.put(receiver.type, v);
|
||||
v.arraylength();
|
||||
v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "arrayIndices", Type.getMethodDescriptor(INT_RANGE_TYPE, INT_TYPE), false);
|
||||
return INT_RANGE_TYPE;
|
||||
}
|
||||
}
|
||||
@@ -48,7 +48,6 @@ public class IntrinsicMethods {
|
||||
private static final IntrinsicMethod HASH_CODE = new HashCode();
|
||||
|
||||
private static final IntrinsicMethod ARRAY_SIZE = new ArraySize();
|
||||
private static final IntrinsicMethod ARRAY_INDICES = new ArrayIndices();
|
||||
private static final Equals EQUALS = new Equals();
|
||||
private static final IdentityEquals IDENTITY_EQUALS = new IdentityEquals();
|
||||
private static final IteratorNext ITERATOR_NEXT = new IteratorNext();
|
||||
@@ -143,7 +142,6 @@ public class IntrinsicMethods {
|
||||
}
|
||||
|
||||
declareIntrinsicFunction("Array", "size", 0, ARRAY_SIZE);
|
||||
declareIntrinsicProperty("Array", "indices", ARRAY_INDICES);
|
||||
declareIntrinsicFunction("Array", "set", 2, ARRAY_SET);
|
||||
declareIntrinsicFunction("Array", "get", 1, ARRAY_GET);
|
||||
declareIntrinsicFunction("Array", "clone", 0, CLONE);
|
||||
@@ -153,7 +151,6 @@ public class IntrinsicMethods {
|
||||
private void declareArrayMethodsForPrimitive(@NotNull JvmPrimitiveType jvmPrimitiveType) {
|
||||
String arrayTypeName = jvmPrimitiveType.getPrimitiveType().getArrayTypeName().asString();
|
||||
declareIntrinsicFunction(arrayTypeName, "size", 0, ARRAY_SIZE);
|
||||
declareIntrinsicProperty(arrayTypeName, "indices", ARRAY_INDICES);
|
||||
declareIntrinsicFunction(arrayTypeName, "set", 2, ARRAY_SET);
|
||||
declareIntrinsicFunction(arrayTypeName, "get", 1, ARRAY_GET);
|
||||
declareIntrinsicFunction(arrayTypeName, "clone", 0, CLONE);
|
||||
|
||||
@@ -33,7 +33,6 @@ public class AsmTypeConstants {
|
||||
|
||||
public static final Type UNIT_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/Unit");
|
||||
public static final Type FUNCTION1_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/Function1");
|
||||
public static final Type INT_RANGE_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/IntRange");
|
||||
public static final Type PROPERTY_METADATA_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/PropertyMetadata");
|
||||
public static final Type PROPERTY_METADATA_IMPL_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/PropertyMetadataImpl");
|
||||
|
||||
|
||||
@@ -15,8 +15,6 @@ public open class Any {
|
||||
|
||||
public final class Array</*0*/ reified T> : kotlin.Cloneable {
|
||||
/*primary*/ public constructor Array</*0*/ reified T>(/*0*/ size: kotlin.Int, /*1*/ init: kotlin.Function1<kotlin.Int, T>)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.Array<T>
|
||||
public final fun get(/*0*/ index: kotlin.Int): T
|
||||
public final fun iterator(): kotlin.Iterator<T>
|
||||
@@ -35,8 +33,6 @@ public final class Boolean : kotlin.Comparable<kotlin.Boolean> {
|
||||
|
||||
public final class BooleanArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor BooleanArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.BooleanArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Boolean
|
||||
public final fun iterator(): kotlin.BooleanIterator
|
||||
@@ -117,8 +113,6 @@ public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte> {
|
||||
|
||||
public final class ByteArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor ByteArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.ByteArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Byte
|
||||
public final fun iterator(): kotlin.ByteIterator
|
||||
@@ -237,8 +231,6 @@ public final class Char : kotlin.Comparable<kotlin.Char> {
|
||||
|
||||
public final class CharArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor CharArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.CharArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Char
|
||||
public final fun iterator(): kotlin.CharIterator
|
||||
@@ -388,8 +380,6 @@ public final class Double : kotlin.Number, kotlin.Comparable<kotlin.Double> {
|
||||
|
||||
public final class DoubleArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor DoubleArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.DoubleArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Double
|
||||
public final fun iterator(): kotlin.DoubleIterator
|
||||
@@ -614,8 +604,6 @@ public final class Float : kotlin.Number, kotlin.Comparable<kotlin.Float> {
|
||||
|
||||
public final class FloatArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor FloatArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.FloatArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Float
|
||||
public final fun iterator(): kotlin.FloatIterator
|
||||
@@ -918,8 +906,6 @@ public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int> {
|
||||
|
||||
public final class IntArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor IntArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.IntArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Int
|
||||
public final fun iterator(): kotlin.IntIterator
|
||||
@@ -1087,8 +1073,6 @@ public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long> {
|
||||
|
||||
public final class LongArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor LongArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.LongArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Long
|
||||
public final fun iterator(): kotlin.LongIterator
|
||||
@@ -1381,8 +1365,6 @@ public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short> {
|
||||
|
||||
public final class ShortArray : kotlin.Cloneable {
|
||||
/*primary*/ public constructor ShortArray(/*0*/ size: kotlin.Int)
|
||||
public final val indices: kotlin.IntRange
|
||||
public final fun <get-indices>(): kotlin.IntRange
|
||||
public open override /*1*/ fun clone(): kotlin.ShortArray
|
||||
public final fun get(/*0*/ index: kotlin.Int): kotlin.Short
|
||||
public final fun iterator(): kotlin.ShortIterator
|
||||
|
||||
@@ -5,55 +5,47 @@ fun foo(a: Any): Int {
|
||||
a.get(0)
|
||||
a.set(0, 1)
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
if (a is ShortArray) {
|
||||
a.get(0)
|
||||
a.set(0, 1)
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
if (a is ByteArray) {
|
||||
a.get(0)
|
||||
a.set(0, 1)
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
if (a is FloatArray) {
|
||||
a.get(0)
|
||||
a.set(0, 1.toFloat())
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
if (a is DoubleArray) {
|
||||
a.get(0)
|
||||
a.set(0, 1.0)
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
if (a is BooleanArray) {
|
||||
a.get(0)
|
||||
a.set(0, false)
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
if (a is CharArray) {
|
||||
a.get(0)
|
||||
a.set(0, 'a')
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
if (a is Array<*>) {
|
||||
if (a.size() > 0) a.get(0)
|
||||
a.iterator()
|
||||
a.indices
|
||||
return a.size()
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package whats.the.difference
|
||||
import java.util.HashSet
|
||||
|
||||
fun iarray(vararg a : Int) = a // BUG
|
||||
|
||||
val IntArray.indices: IntRange get() = IntRange(0, lastIndex())
|
||||
fun IntArray.lastIndex() = size() - 1
|
||||
|
||||
fun box() : String {
|
||||
|
||||
@@ -19,3 +19,4 @@ fun main() {
|
||||
|
||||
fun <T> Array<T>.lastIndex() = size() - 1
|
||||
val <T> Array<T>.lastIndex : Int get() = size() - 1
|
||||
val <T> Array<T>.indices : IntRange get() = IntRange(0, lastIndex)
|
||||
|
||||
@@ -129,28 +129,28 @@ LazyJavaClassifierType@101['E'] {
|
||||
arguments = ArrayList@102[empty]
|
||||
classifier = JavaTypeParameterImpl@103['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@104['E'] {
|
||||
arguments = ArrayList@105[empty]
|
||||
classifier = JavaTypeParameterImpl@106['E']
|
||||
LazyJavaClassifierType@105['E'] {
|
||||
arguments = ArrayList@106[empty]
|
||||
classifier = JavaTypeParameterImpl@107['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@107
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@108['E'] {
|
||||
arguments = ArrayList@109[empty]
|
||||
classifier = JavaTypeParameterImpl@110['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@112['E'] {
|
||||
arguments = ArrayList@113[empty]
|
||||
classifier = JavaTypeParameterImpl@114['E']
|
||||
LazyJavaClassifierType@111['E'] {
|
||||
arguments = ArrayList@112[empty]
|
||||
classifier = JavaTypeParameterImpl@113['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@114
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@115['E'] {
|
||||
@@ -164,7 +164,7 @@ LazyJavaClassifierType@118['E'] {
|
||||
arguments = ArrayList@119[empty]
|
||||
classifier = JavaTypeParameterImpl@120['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@121['E'] {
|
||||
@@ -178,110 +178,110 @@ LazyJavaClassifierType@124['E'] {
|
||||
arguments = ArrayList@125[empty]
|
||||
classifier = JavaTypeParameterImpl@126['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@107
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@127['E'] {
|
||||
arguments = ArrayList@128[empty]
|
||||
classifier = JavaTypeParameterImpl@129['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@114
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@130['E'] {
|
||||
arguments = ArrayList@131[empty]
|
||||
classifier = JavaTypeParameterImpl@132['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@133['E'] {
|
||||
arguments = ArrayList@134[empty]
|
||||
classifier = JavaTypeParameterImpl@135['E']
|
||||
nullable = 'false': Boolean@85
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@136['E'] {
|
||||
arguments = ArrayList@137[empty]
|
||||
classifier = JavaTypeParameterImpl@126['E']
|
||||
classifier = JavaTypeParameterImpl@103['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@107
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@138['E'] {
|
||||
arguments = ArrayList@139[empty]
|
||||
classifier = JavaTypeParameterImpl@117['E']
|
||||
classifier = JavaTypeParameterImpl@110['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@140['E'] {
|
||||
arguments = ArrayList@141[empty]
|
||||
classifier = JavaTypeParameterImpl@110['E']
|
||||
classifier = JavaTypeParameterImpl@113['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@114
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@142['E'] {
|
||||
arguments = ArrayList@143[empty]
|
||||
classifier = JavaTypeParameterImpl@103['E']
|
||||
classifier = JavaTypeParameterImpl@123['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@144['E'] {
|
||||
arguments = ArrayList@145[empty]
|
||||
classifier = JavaTypeParameterImpl@135['E']
|
||||
classifier = JavaTypeParameterImpl@107['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@146['E'] {
|
||||
arguments = ArrayList@147[empty]
|
||||
classifier = JavaTypeParameterImpl@129['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@114
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@148['E'] {
|
||||
arguments = ArrayList@149[empty]
|
||||
classifier = JavaTypeParameterImpl@114['E']
|
||||
classifier = JavaTypeParameterImpl@126['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@150['E'] {
|
||||
arguments = ArrayList@151[empty]
|
||||
classifier = JavaTypeParameterImpl@106['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@107
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@152['E'] {
|
||||
arguments = ArrayList@153[empty]
|
||||
classifier = JavaTypeParameterImpl@99['E']
|
||||
classifier = JavaTypeParameterImpl@117['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@152['E'] {
|
||||
arguments = ArrayList@153[empty]
|
||||
classifier = JavaTypeParameterImpl@132['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@154['E'] {
|
||||
arguments = ArrayList@155[empty]
|
||||
classifier = JavaTypeParameterImpl@123['E']
|
||||
classifier = JavaTypeParameterImpl@99['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@156['E'] {
|
||||
arguments = ArrayList@157[empty]
|
||||
classifier = JavaTypeParameterImpl@132['E']
|
||||
classifier = JavaTypeParameterImpl@120['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
}
|
||||
|
||||
LazyJavaClassifierType@158['E'] {
|
||||
arguments = ArrayList@159[empty]
|
||||
classifier = JavaTypeParameterImpl@120['E']
|
||||
classifier = JavaTypeParameterImpl@135['E']
|
||||
nullable = 'true': Boolean@91
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
}
|
||||
@@ -333,157 +333,167 @@ LazyJavaPackageFragmentProvider@181 {
|
||||
packageFragments('<root>': FqName@182) = LazyJavaPackageFragment@183['<root>']
|
||||
packageFragments('Array': FqName@184) = null
|
||||
packageFragments('Int': FqName@185) = null
|
||||
packageFragments('String': FqName@186) = null
|
||||
packageFragments('T': FqName@187) = null
|
||||
packageFragments('java': FqName@188) = LazyJavaPackageFragment@189['java']
|
||||
packageFragments('java.io': FqName@190) = LazyJavaPackageFragment@191['io']
|
||||
packageFragments('java.lang': FqName@192) = LazyJavaPackageFragment@193['lang']
|
||||
packageFragments('java.lang.Array': FqName@194) = null
|
||||
packageFragments('java.lang.Int': FqName@195) = null
|
||||
packageFragments('java.lang.String': FqName@196) = null
|
||||
packageFragments('java.lang.T': FqName@197) = null
|
||||
packageFragments('java.util': FqName@198) = LazyJavaPackageFragment@199['util']
|
||||
packageFragments('java.util.Array': FqName@200) = null
|
||||
packageFragments('java.util.Int': FqName@201) = null
|
||||
packageFragments('java.util.String': FqName@202) = null
|
||||
packageFragments('java.util.T': FqName@203) = null
|
||||
packageFragments('kotlin': FqName@204) = null
|
||||
packageFragments('kotlin.Array': FqName@205) = null
|
||||
packageFragments('kotlin.Int': FqName@206) = null
|
||||
packageFragments('kotlin.String': FqName@207) = null
|
||||
packageFragments('kotlin.T': FqName@208) = null
|
||||
packageFragments('kotlin.io': FqName@209) = null
|
||||
packageFragments('kotlin.jvm': FqName@210) = null
|
||||
packageFragments('whats': FqName@211) = null
|
||||
packageFragments('whats.the': FqName@212) = null
|
||||
packageFragments('whats.the.difference': FqName@213) = null
|
||||
packageFragments('whats.the.difference.Array': FqName@214) = null
|
||||
packageFragments('whats.the.difference.Int': FqName@215) = null
|
||||
packageFragments('whats.the.difference.String': FqName@216) = null
|
||||
packageFragments('whats.the.difference.T': FqName@217) = null
|
||||
packageFragments('whats.the.difference.lastIndex': FqName@218) = null
|
||||
packageFragments('IntRange': FqName@186) = null
|
||||
packageFragments('String': FqName@187) = null
|
||||
packageFragments('T': FqName@188) = null
|
||||
packageFragments('java': FqName@189) = LazyJavaPackageFragment@190['java']
|
||||
packageFragments('java.io': FqName@191) = LazyJavaPackageFragment@192['io']
|
||||
packageFragments('java.lang': FqName@193) = LazyJavaPackageFragment@194['lang']
|
||||
packageFragments('java.lang.Array': FqName@195) = null
|
||||
packageFragments('java.lang.Int': FqName@196) = null
|
||||
packageFragments('java.lang.IntRange': FqName@197) = null
|
||||
packageFragments('java.lang.String': FqName@198) = null
|
||||
packageFragments('java.lang.T': FqName@199) = null
|
||||
packageFragments('java.util': FqName@200) = LazyJavaPackageFragment@201['util']
|
||||
packageFragments('java.util.Array': FqName@202) = null
|
||||
packageFragments('java.util.Int': FqName@203) = null
|
||||
packageFragments('java.util.IntRange': FqName@204) = null
|
||||
packageFragments('java.util.String': FqName@205) = null
|
||||
packageFragments('java.util.T': FqName@206) = null
|
||||
packageFragments('kotlin': FqName@207) = null
|
||||
packageFragments('kotlin.Array': FqName@208) = null
|
||||
packageFragments('kotlin.Int': FqName@209) = null
|
||||
packageFragments('kotlin.IntRange': FqName@210) = null
|
||||
packageFragments('kotlin.String': FqName@211) = null
|
||||
packageFragments('kotlin.T': FqName@212) = null
|
||||
packageFragments('kotlin.io': FqName@213) = null
|
||||
packageFragments('kotlin.jvm': FqName@214) = null
|
||||
packageFragments('whats': FqName@215) = null
|
||||
packageFragments('whats.the': FqName@216) = null
|
||||
packageFragments('whats.the.difference': FqName@217) = null
|
||||
packageFragments('whats.the.difference.Array': FqName@218) = null
|
||||
packageFragments('whats.the.difference.Int': FqName@219) = null
|
||||
packageFragments('whats.the.difference.IntRange': FqName@220) = null
|
||||
packageFragments('whats.the.difference.String': FqName@221) = null
|
||||
packageFragments('whats.the.difference.T': FqName@222) = null
|
||||
packageFragments('whats.the.difference.indices': FqName@223) = null
|
||||
packageFragments('whats.the.difference.lastIndex': FqName@224) = null
|
||||
topLevelClasses(JavaClassImpl@69['AbstractCollection']) = LazyJavaClassDescriptor@3['AbstractCollection']
|
||||
topLevelClasses(JavaClassImpl@73['AbstractList']) = LazyJavaClassDescriptor@14['AbstractList']
|
||||
topLevelClasses(JavaClassImpl@219['ArrayList']) = LazyJavaClassDescriptor@24['ArrayList']
|
||||
topLevelClasses(JavaClassImpl@225['ArrayList']) = LazyJavaClassDescriptor@24['ArrayList']
|
||||
topLevelClasses(JavaClassImpl@177['RandomAccess']) = LazyJavaClassDescriptor@39['RandomAccess']
|
||||
topLevelClasses(JavaClassImpl@180['Serializable']) = LazyJavaClassDescriptor@43['Serializable']
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@189['java'] {
|
||||
classes('lang': Name@220) = null // through LazyPackageFragmentScopeForJavaPackage@221
|
||||
classes('util': Name@222) = null // through LazyPackageFragmentScopeForJavaPackage@221
|
||||
deserializedPackageScope = Empty@223 // through LazyPackageFragmentScopeForJavaPackage@221
|
||||
functions('lang': Name@224) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@221
|
||||
functions('util': Name@225) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@221
|
||||
memberIndex = computeMemberIndex$1@226 // through LazyPackageFragmentScopeForJavaPackage@221
|
||||
LazyJavaPackageFragment@190['java'] {
|
||||
classes('lang': Name@226) = null // through LazyPackageFragmentScopeForJavaPackage@227
|
||||
classes('util': Name@228) = null // through LazyPackageFragmentScopeForJavaPackage@227
|
||||
deserializedPackageScope = Empty@229 // through LazyPackageFragmentScopeForJavaPackage@227
|
||||
functions('lang': Name@230) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@227
|
||||
functions('util': Name@231) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@227
|
||||
memberIndex = computeMemberIndex$1@232 // through LazyPackageFragmentScopeForJavaPackage@227
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@193['lang'] {
|
||||
classes('ArrayList': Name@227) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('add': Name@10) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('get': Name@229) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('hasNext': Name@230) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('iarray': Name@231) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('iterator': Name@232) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('lastIndex': Name@233) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('minus': Name@234) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('next': Name@235) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('rangeTo': Name@236) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
classes('size': Name@237) = null // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
deserializedPackageScope = Empty@223 // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('ArrayList': Name@227) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('add': Name@10) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('get': Name@229) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('hasNext': Name@230) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('iarray': Name@231) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('iterator': Name@232) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('lastIndex': Name@233) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('minus': Name@234) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('next': Name@235) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('rangeTo': Name@236) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
functions('size': Name@237) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
memberIndex = computeMemberIndex$1@238 // through LazyPackageFragmentScopeForJavaPackage@228
|
||||
LazyJavaPackageFragment@194['lang'] {
|
||||
classes('ArrayList': Name@233) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('IntRange': Name@235) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('add': Name@10) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('get': Name@236) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('hasNext': Name@237) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('iarray': Name@238) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('iterator': Name@239) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('lastIndex': Name@240) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('minus': Name@241) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('next': Name@242) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('rangeTo': Name@243) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
classes('size': Name@244) = null // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
deserializedPackageScope = Empty@229 // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('ArrayList': Name@233) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('IntRange': Name@235) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('add': Name@10) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('get': Name@236) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('hasNext': Name@237) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('iarray': Name@238) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('iterator': Name@239) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('lastIndex': Name@245) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('minus': Name@241) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('next': Name@242) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('rangeTo': Name@243) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
functions('size': Name@244) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
memberIndex = computeMemberIndex$1@246 // through LazyPackageFragmentScopeForJavaPackage@234
|
||||
}
|
||||
|
||||
LazyJavaPackageFragment@199['util'] {
|
||||
classes('Array': Name@239) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('ArrayList': Name@227) = LazyJavaClassDescriptor@24['ArrayList'] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('Int': Name@241) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('String': Name@242) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('add': Name@10) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('get': Name@229) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('hasNext': Name@230) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('iarray': Name@231) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('iterator': Name@232) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('lastIndex': Name@233) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('minus': Name@234) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('next': Name@235) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('rangeTo': Name@236) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
classes('size': Name@237) = null // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
deserializedPackageScope = Empty@223 // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('ArrayList': Name@227) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('add': Name@10) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('get': Name@229) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('hasNext': Name@230) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('iarray': Name@231) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('iterator': Name@232) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('lastIndex': Name@233) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('minus': Name@234) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('next': Name@235) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('rangeTo': Name@236) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
functions('size': Name@237) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
memberIndex = computeMemberIndex$1@243 // through LazyPackageFragmentScopeForJavaPackage@240
|
||||
LazyJavaPackageFragment@201['util'] {
|
||||
classes('Array': Name@247) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('ArrayList': Name@233) = LazyJavaClassDescriptor@24['ArrayList'] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('Int': Name@249) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('IntRange': Name@250) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('String': Name@251) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('add': Name@10) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('get': Name@236) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('hasNext': Name@237) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('iarray': Name@238) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('iterator': Name@239) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('lastIndex': Name@240) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('minus': Name@241) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('next': Name@242) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('rangeTo': Name@243) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
classes('size': Name@244) = null // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
deserializedPackageScope = Empty@229 // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('ArrayList': Name@233) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('IntRange': Name@235) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('add': Name@10) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('get': Name@236) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('hasNext': Name@237) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('iarray': Name@238) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('iterator': Name@239) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('lastIndex': Name@245) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('minus': Name@241) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('next': Name@242) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('rangeTo': Name@243) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
functions('size': Name@244) = EmptyList@11[empty] // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
memberIndex = computeMemberIndex$1@252 // through LazyPackageFragmentScopeForJavaPackage@248
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterDescriptor@57['E'] {
|
||||
defaultType = JetTypeImpl@244['E']
|
||||
defaultType = JetTypeImpl@253['E']
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@100
|
||||
upperBounds = LinkedHashSet@245[1] { NullableType@246 }
|
||||
upperBoundsAsType = NullableType@246
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterDescriptor@48['E'] {
|
||||
defaultType = JetTypeImpl@247['E']
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@107
|
||||
upperBounds = LinkedHashSet@248[1] { NullableType@249 }
|
||||
upperBoundsAsType = NullableType@249
|
||||
upperBounds = LinkedHashSet@254[1] { NullableType@255 }
|
||||
upperBoundsAsType = NullableType@255
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterDescriptor@52['E'] {
|
||||
defaultType = JetTypeImpl@250['E']
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@111
|
||||
upperBounds = LinkedHashSet@251[1] { NullableType@252 }
|
||||
upperBoundsAsType = NullableType@252
|
||||
defaultType = JetTypeImpl@256['E']
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@104
|
||||
upperBounds = LinkedHashSet@257[1] { NullableType@258 }
|
||||
upperBoundsAsType = NullableType@258
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@253 {
|
||||
resolve(JavaTypeParameterImpl@254['E']) = LazyJavaTypeParameterDescriptor@48['E']
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@255 {
|
||||
resolve(JavaTypeParameterImpl@256['E']) = LazyJavaTypeParameterDescriptor@57['E']
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@257 {
|
||||
resolve(JavaTypeParameterImpl@258['E']) = LazyJavaTypeParameterDescriptor@52['E']
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@259 {
|
||||
resolve(JavaTypeParameterImpl@123['E']) = null
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@260 {
|
||||
resolve(JavaTypeParameterImpl@126['E']) = null
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@261 {
|
||||
resolve(JavaTypeParameterImpl@99['E']) = null
|
||||
LazyJavaTypeParameterDescriptor@48['E'] {
|
||||
defaultType = JetTypeImpl@259['E']
|
||||
typeConstructor = AbstractLazyTypeParameterDescriptor$1@114
|
||||
upperBounds = LinkedHashSet@260[1] { NullableType@261 }
|
||||
upperBoundsAsType = NullableType@261
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@262 {
|
||||
resolve(JavaTypeParameterImpl@263['E']) = LazyJavaTypeParameterDescriptor@48['E']
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@264 {
|
||||
resolve(JavaTypeParameterImpl@265['E']) = LazyJavaTypeParameterDescriptor@57['E']
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@266 {
|
||||
resolve(JavaTypeParameterImpl@267['E']) = LazyJavaTypeParameterDescriptor@52['E']
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@268 {
|
||||
resolve(JavaTypeParameterImpl@132['E']) = null
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@263 {
|
||||
resolve(JavaTypeParameterImpl@129['E']) = null
|
||||
LazyJavaTypeParameterResolver@269 {
|
||||
resolve(JavaTypeParameterImpl@126['E']) = null
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@270 {
|
||||
resolve(JavaTypeParameterImpl@113['E']) = null
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@271 {
|
||||
resolve(JavaTypeParameterImpl@123['E']) = null
|
||||
}
|
||||
|
||||
LazyJavaTypeParameterResolver@272 {
|
||||
resolve(JavaTypeParameterImpl@117['E']) = null
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ package whats {
|
||||
package whats.the {
|
||||
|
||||
package whats.the.difference {
|
||||
internal val </*0*/ T> kotlin.Array<T>.indices: kotlin.IntRange
|
||||
internal val </*0*/ T> kotlin.Array<T>.lastIndex: kotlin.Int
|
||||
internal fun iarray(/*0*/ vararg a: kotlin.String /*kotlin.Array<kotlin.String>*/): kotlin.Array<kotlin.String>
|
||||
internal fun main(): kotlin.Unit
|
||||
|
||||
@@ -129,18 +129,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("indices.kt")
|
||||
public void testIndices() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/arrays/indices.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("indicesChar.kt")
|
||||
public void testIndicesChar() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/arrays/indicesChar.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("iterator.kt")
|
||||
public void testIterator() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/arrays/iterator.kt");
|
||||
@@ -1902,12 +1890,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("forIntRange.kt")
|
||||
public void testForIntRange() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/controlStructures/forIntRange.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("forLoopMemberExtensionAll.kt")
|
||||
public void testForLoopMemberExtensionAll() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/controlStructures/forLoopMemberExtensionAll.kt");
|
||||
@@ -2124,12 +2106,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt998.kt")
|
||||
public void testKt998() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/controlStructures/kt998.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("longRange.kt")
|
||||
public void testLongRange() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/controlStructures/longRange.kt");
|
||||
|
||||
+24
@@ -120,6 +120,18 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode
|
||||
doTestWithStdlib(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("indices.kt")
|
||||
public void testIndices() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/arrays/indices.kt");
|
||||
doTestWithStdlib(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("indicesChar.kt")
|
||||
public void testIndicesChar() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/arrays/indicesChar.kt");
|
||||
doTestWithStdlib(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt3771.kt")
|
||||
public void testKt3771() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/arrays/kt3771.kt");
|
||||
@@ -1626,6 +1638,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode
|
||||
doTestWithStdlib(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("forIntRange.kt")
|
||||
public void testForIntRange() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/ranges/forIntRange.kt");
|
||||
doTestWithStdlib(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("multiAssignmentIterationOverIntRange.kt")
|
||||
public void testMultiAssignmentIterationOverIntRange() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/ranges/multiAssignmentIterationOverIntRange.kt");
|
||||
@@ -2426,6 +2444,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode
|
||||
doTestWithStdlib(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt998.kt")
|
||||
public void testKt998() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/regressions/kt998.kt");
|
||||
doTestWithStdlib(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("objectCaptureOuterConstructorProperty.kt")
|
||||
public void testObjectCaptureOuterConstructorProperty() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/regressions/objectCaptureOuterConstructorProperty.kt");
|
||||
|
||||
@@ -24,7 +24,5 @@ public class Array<reified T>(size: Int, init: (Int) -> T) : Cloneable {
|
||||
|
||||
public fun iterator(): Iterator<T>
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): Array<T>
|
||||
}
|
||||
|
||||
@@ -26,8 +26,6 @@ public class ByteArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): ByteIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): ByteArray
|
||||
}
|
||||
|
||||
@@ -39,8 +37,6 @@ public class CharArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): CharIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): CharArray
|
||||
}
|
||||
|
||||
@@ -52,8 +48,6 @@ public class ShortArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): ShortIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): ShortArray
|
||||
}
|
||||
|
||||
@@ -65,8 +59,6 @@ public class IntArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): IntIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): IntArray
|
||||
}
|
||||
|
||||
@@ -78,8 +70,6 @@ public class LongArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): LongIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): LongArray
|
||||
}
|
||||
|
||||
@@ -91,8 +81,6 @@ public class FloatArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): FloatIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): FloatArray
|
||||
}
|
||||
|
||||
@@ -104,8 +92,6 @@ public class DoubleArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): DoubleIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): DoubleArray
|
||||
}
|
||||
|
||||
@@ -117,8 +103,6 @@ public class BooleanArray(size: Int) : Cloneable {
|
||||
|
||||
public fun iterator(): BooleanIterator
|
||||
|
||||
public val indices: IntRange
|
||||
|
||||
public override fun clone(): BooleanArray
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ package kotlin.jvm.internal;
|
||||
import kotlin.IntRange;
|
||||
import kotlin.KotlinNullPointerException;
|
||||
|
||||
import java.lang.Deprecated;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -93,6 +94,8 @@ public class Intrinsics {
|
||||
return first == null ? second == null : first.equals(second);
|
||||
}
|
||||
|
||||
// This method is not used from generated code anymore but kept for backwards compatibility
|
||||
@Deprecated
|
||||
public static IntRange arrayIndices(int length) {
|
||||
return new IntRange(0, length - 1);
|
||||
}
|
||||
|
||||
@@ -34,8 +34,6 @@ class GenerateArrays(out: PrintWriter) : BuiltInsSourceGenerator(out) {
|
||||
out.println()
|
||||
out.println(" public fun iterator(): ${s}Iterator")
|
||||
out.println()
|
||||
out.println(" public val indices: IntRange")
|
||||
out.println()
|
||||
out.println(" public override fun clone(): ${s}Array")
|
||||
out.println("}")
|
||||
out.println()
|
||||
|
||||
-1
@@ -138,7 +138,6 @@ public final class ArrayFIF extends CompositeFIF {
|
||||
add(pattern(ARRAYS, "get"), GET_INTRINSIC);
|
||||
add(pattern(ARRAYS, "set"), SET_INTRINSIC);
|
||||
add(pattern(ARRAYS, "size"), LENGTH_PROPERTY_INTRINSIC);
|
||||
add(pattern(ARRAYS, "<get-indices>"), new KotlinFunctionIntrinsic("arrayIndices"));
|
||||
add(pattern(ARRAYS, "iterator"), new KotlinFunctionIntrinsic("arrayIterator"));
|
||||
add(pattern(ARRAY, "<init>"), new KotlinFunctionIntrinsic("arrayFromFun"));
|
||||
add(pattern(NUMBER_ARRAY, "<init>"),new KotlinFunctionIntrinsic("numberArrayOfSize"));
|
||||
|
||||
@@ -974,10 +974,6 @@
|
||||
return result;
|
||||
};
|
||||
|
||||
Kotlin.arrayIndices = function (arr) {
|
||||
return new Kotlin.NumberRange(0, arr.length - 1);
|
||||
};
|
||||
|
||||
Kotlin.arrayIterator = function (array) {
|
||||
return new Kotlin.ArrayIterator(array);
|
||||
};
|
||||
|
||||
@@ -26,3 +26,31 @@ public val CharArray.lastIndex: Int
|
||||
|
||||
public val Array<*>.lastIndex: Int
|
||||
get() = this.size - 1
|
||||
|
||||
|
||||
public val BooleanArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val ByteArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val ShortArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val IntArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val LongArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val FloatArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val DoubleArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val CharArray.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
public val Array<*>.indices: IntRange
|
||||
get() = IntRange(0, this.size - 1)
|
||||
|
||||
Reference in New Issue
Block a user