diff --git a/compiler/testData/codegen/script/parameter.kts b/compiler/testData/codegen/script/parameter.kts index 754175b9010..22b73ec57ea 100644 --- a/compiler/testData/codegen/script/parameter.kts +++ b/compiler/testData/codegen/script/parameter.kts @@ -1,5 +1,4 @@ // expected: rv: sky color is blue -// param: what: kotlin.String: sky -// param: color: kotlin.String: blue +// param: sky blue -val rv = "$what color is $color" +val rv = "${args[0]} color is ${args[1]}" diff --git a/compiler/testData/codegen/script/parameterArray.kts b/compiler/testData/codegen/script/parameterArray.kts index bc517f8017e..17c6fdded5a 100644 --- a/compiler/testData/codegen/script/parameterArray.kts +++ b/compiler/testData/codegen/script/parameterArray.kts @@ -1,4 +1,4 @@ -// param: args: kotlin.Array: three little words +// param: three little words // expected: rv: little val rv = args[1] diff --git a/compiler/testData/codegen/script/parameterClosure.kts b/compiler/testData/codegen/script/parameterClosure.kts index 2db2884ca3e..d0ddeb31b9d 100644 --- a/compiler/testData/codegen/script/parameterClosure.kts +++ b/compiler/testData/codegen/script/parameterClosure.kts @@ -1,6 +1,6 @@ -// param: x: kotlin.Int: 10 +// param: 10 -fun addX(y: Int) = x + y +fun addX(y: Int) = java.lang.Integer.parseInt(args[0]) + y val rv = addX(3) diff --git a/compiler/testData/codegen/script/parameterLong.kts b/compiler/testData/codegen/script/parameterLong.kts index 5af7b0c9ab9..44d68da50c6 100644 --- a/compiler/testData/codegen/script/parameterLong.kts +++ b/compiler/testData/codegen/script/parameterLong.kts @@ -1,5 +1,4 @@ // expected: rv: 19 -// param: aa: kotlin.Long: 17 -// param: bb: kotlin.Int: 2 +// param: 17 2 -val rv = aa + bb +val rv = java.lang.Long.parseLong(args[0]) + java.lang.Integer.parseInt(args[1]) diff --git a/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestFiles.java b/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestFiles.java index bf1ea058149..86026990d2b 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestFiles.java +++ b/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestFiles.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2016 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. @@ -20,6 +20,7 @@ import com.google.common.collect.Lists; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.psi.PsiErrorElement; +import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.builtins.DefaultBuiltIns; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; @@ -29,6 +30,7 @@ import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.resolve.AnalyzingUtils; import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider; import org.jetbrains.kotlin.script.ScriptParameter; +import org.jetbrains.kotlin.script.StandardScriptDefinition; import org.jetbrains.kotlin.scripts.SimpleParamsTestScriptDefinition; import org.jetbrains.kotlin.test.KotlinTestUtils; import org.jetbrains.kotlin.types.KotlinType; @@ -122,54 +124,24 @@ public class CodegenTestFiles { expectedValues.add(Pair.create(fieldName, expectedValue)); } - List scriptParameterTypes = Lists.newArrayList(); List scriptParameterValues = Lists.newArrayList(); if (file.isScript()) { - Pattern scriptParametersPattern = Pattern.compile("param: (\\S+): (\\S+): (\\S.*)"); + Pattern scriptParametersPattern = Pattern.compile("param: (\\S.*)"); Matcher scriptParametersMatcher = scriptParametersPattern.matcher(file.getText()); - while (scriptParametersMatcher.find()) { - String name = scriptParametersMatcher.group(1); - String type = scriptParametersMatcher.group(2); - String valueString = scriptParametersMatcher.group(3); - Object value; + if (scriptParametersMatcher.find()) { + String valueString = scriptParametersMatcher.group(1); + String[] values = valueString.split(" "); - KotlinType jetType; - KotlinBuiltIns builtIns = DefaultBuiltIns.getInstance(); - if (type.equals("kotlin.String")) { - value = valueString; - jetType = builtIns.getStringType(); - } - else if (type.equals("kotlin.Long")) { - value = Long.parseLong(valueString); - jetType = builtIns.getLongType(); - } - else if (type.equals("kotlin.Int")) { - value = Integer.parseInt(valueString); - jetType = builtIns.getIntType(); - } - else if (type.equals("kotlin.Array")) { - value = valueString.split(" "); - jetType = builtIns.getArrayType(Variance.INVARIANT, builtIns.getStringType()); - } - else { - throw new AssertionError("TODO: " + type); - } - - scriptParameterTypes.add(new ScriptParameter(Name.identifier(name), jetType)); - scriptParameterValues.add(value); + scriptParameterValues.add(values); + } else { + scriptParameterValues.add(ArrayUtil.EMPTY_STRING_ARRAY); } - - KotlinScriptDefinitionProvider definitionProvider = KotlinScriptDefinitionProvider.getInstance(project); - definitionProvider.addScriptDefinition( - new SimpleParamsTestScriptDefinition( - ".kts", - scriptParameterTypes - ) - ); } + KotlinScriptDefinitionProvider.getInstance(project).addScriptDefinition(StandardScriptDefinition.INSTANCE); + return new CodegenTestFiles(Collections.singletonList(file), expectedValues, scriptParameterValues); } }