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
|
* @author Pavel Talanov
|
||||||
*/
|
*/
|
||||||
public final class InlineTest extends SingleFileTranslationTest {
|
|
||||||
|
//TODO:
|
||||||
|
//Inlining turned off
|
||||||
|
@SuppressWarnings("UnusedDeclaration")
|
||||||
|
public abstract class InlineTest extends SingleFileTranslationTest {
|
||||||
public InlineTest() {
|
public InlineTest() {
|
||||||
super("inline/");
|
super("inline/");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ public final class MiscTest extends AbstractExpressionTest {
|
|||||||
checkFooBoxIsTrue("KT-1052-2.kt", EcmaVersion.all());
|
checkFooBoxIsTrue("KT-1052-2.kt", EcmaVersion.all());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testKt2314() throws Exception {
|
||||||
|
checkFooBoxIsTrue("KT-2314.kt", EcmaVersion.all());
|
||||||
|
}
|
||||||
|
|
||||||
public void testKt1052() throws Exception {
|
public void testKt1052() throws Exception {
|
||||||
checkOutput("KT-1052.kt", "true\n");
|
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.descriptors.ValueParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetCallExpression;
|
import org.jetbrains.jet.lang.psi.JetCallExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetFunction;
|
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.jet.lang.resolve.calls.ResolvedValueArgument;
|
||||||
import org.jetbrains.k2js.translate.context.TemporaryVariable;
|
import org.jetbrains.k2js.translate.context.TemporaryVariable;
|
||||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
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.reference.CallParametersResolver.resolveCallParameters;
|
||||||
import static org.jetbrains.k2js.translate.utils.BindingUtils.getFunctionForDescriptor;
|
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.getExpectedReceiverDescriptor;
|
||||||
import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.getExpectedThisDescriptor;
|
import static org.jetbrains.k2js.translate.utils.JsDescriptorUtils.getExpectedThisDescriptor;
|
||||||
import static org.jetbrains.k2js.translate.utils.FunctionBodyTranslator.translateFunctionBody;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Pavel Talanov
|
* @author Pavel Talanov
|
||||||
*/
|
*/
|
||||||
public final class InlinedCallExpressionTranslator extends AbstractCallExpressionTranslator {
|
public final class InlinedCallExpressionTranslator extends AbstractCallExpressionTranslator {
|
||||||
|
|
||||||
|
@SuppressWarnings("UnusedParameters")
|
||||||
public static boolean shouldBeInlined(@NotNull JetCallExpression expression, @NotNull TranslationContext context) {
|
public static boolean shouldBeInlined(@NotNull JetCallExpression expression, @NotNull TranslationContext context) {
|
||||||
ResolvedCall<?> resolvedCall = getResolvedCallForCallExpression(context.bindingContext(), expression);
|
//TODO: inlining turned off
|
||||||
CallableDescriptor descriptor = resolvedCall.getCandidateDescriptor();
|
//ResolvedCall<?> resolvedCall = getResolvedCallForCallExpression(context.bindingContext(), expression);
|
||||||
if (descriptor instanceof SimpleFunctionDescriptor) {
|
//CallableDescriptor descriptor = resolvedCall.getCandidateDescriptor();
|
||||||
return ((SimpleFunctionDescriptor)descriptor).isInline();
|
//if (descriptor instanceof SimpleFunctionDescriptor) {
|
||||||
}
|
// return ((SimpleFunctionDescriptor)descriptor).isInline();
|
||||||
|
//}
|
||||||
return false;
|
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