Turn off inlining. May be it'll help with KT-2314.
This commit is contained in:
@@ -26,7 +26,11 @@ import java.io.File;
|
||||
/**
|
||||
* @author Pavel Talanov
|
||||
*/
|
||||
public final class InlineTest extends SingleFileTranslationTest {
|
||||
|
||||
//TODO:
|
||||
//Inlining turned off
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
public abstract class InlineTest extends SingleFileTranslationTest {
|
||||
public InlineTest() {
|
||||
super("inline/");
|
||||
}
|
||||
|
||||
@@ -61,6 +61,10 @@ public final class MiscTest extends AbstractExpressionTest {
|
||||
checkFooBoxIsTrue("KT-1052-2.kt", EcmaVersion.all());
|
||||
}
|
||||
|
||||
public void testKt2314() throws Exception {
|
||||
checkFooBoxIsTrue("KT-2314.kt", EcmaVersion.all());
|
||||
}
|
||||
|
||||
public void testKt1052() throws Exception {
|
||||
checkOutput("KT-1052.kt", "true\n");
|
||||
}
|
||||
|
||||
+8
-8
@@ -29,7 +29,6 @@ import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetCallExpression;
|
||||
import org.jetbrains.jet.lang.psi.JetFunction;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ResolvedValueArgument;
|
||||
import org.jetbrains.k2js.translate.context.TemporaryVariable;
|
||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||
@@ -42,22 +41,23 @@ import java.util.Map;
|
||||
|
||||
import static org.jetbrains.k2js.translate.reference.CallParametersResolver.resolveCallParameters;
|
||||
import static org.jetbrains.k2js.translate.utils.BindingUtils.getFunctionForDescriptor;
|
||||
import static org.jetbrains.k2js.translate.utils.BindingUtils.getResolvedCallForCallExpression;
|
||||
import static org.jetbrains.k2js.translate.utils.FunctionBodyTranslator.translateFunctionBody;
|
||||
import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.getExpectedReceiverDescriptor;
|
||||
import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.getExpectedThisDescriptor;
|
||||
import static org.jetbrains.k2js.translate.utils.FunctionBodyTranslator.translateFunctionBody;
|
||||
|
||||
/**
|
||||
* @author Pavel Talanov
|
||||
*/
|
||||
public final class InlinedCallExpressionTranslator extends AbstractCallExpressionTranslator {
|
||||
|
||||
@SuppressWarnings("UnusedParameters")
|
||||
public static boolean shouldBeInlined(@NotNull JetCallExpression expression, @NotNull TranslationContext context) {
|
||||
ResolvedCall<?> resolvedCall = getResolvedCallForCallExpression(context.bindingContext(), expression);
|
||||
CallableDescriptor descriptor = resolvedCall.getCandidateDescriptor();
|
||||
if (descriptor instanceof SimpleFunctionDescriptor) {
|
||||
return ((SimpleFunctionDescriptor)descriptor).isInline();
|
||||
}
|
||||
//TODO: inlining turned off
|
||||
//ResolvedCall<?> resolvedCall = getResolvedCallForCallExpression(context.bindingContext(), expression);
|
||||
//CallableDescriptor descriptor = resolvedCall.getCandidateDescriptor();
|
||||
//if (descriptor instanceof SimpleFunctionDescriptor) {
|
||||
// return ((SimpleFunctionDescriptor)descriptor).isInline();
|
||||
//}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package foo
|
||||
|
||||
import java.util.*
|
||||
|
||||
fun box(): Boolean {
|
||||
val data = arrayList("foo", "bar")
|
||||
if (data.head != "foo") {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
public inline fun arrayList<T>(vararg values: T) : ArrayList<T> {
|
||||
val c = ArrayList<T>()
|
||||
for (v in values) {
|
||||
c.add(v)
|
||||
}
|
||||
return c
|
||||
}
|
||||
|
||||
public inline val <T> ArrayList<T>.head : T
|
||||
get() {
|
||||
return get(0)
|
||||
}
|
||||
Reference in New Issue
Block a user