Deserialize constructors and properties with version requirement 1.3

if they have suspend function type in their descriptors.
Also, review fixes.

 #KT-25256: Fixed
This commit is contained in:
Ilmir Usmanov
2018-07-10 18:55:09 +03:00
parent c460593b7d
commit 6ba2baa9da
24 changed files with 234 additions and 136 deletions
@@ -61,7 +61,10 @@ import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -660,19 +663,6 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
classpath.add(ForTestCompileRuntime.androidAnnotationsForTests());
}
ApiVersion av = ApiVersion.LATEST_STABLE;
boolean explicitApiVersion = false;
for (TestFile tf : files) {
Map<String, String> directives = KotlinTestUtils.parseDirectives(tf.content);
if (directives.containsKey(API_VERSION_DIRECTIVE)) {
assert !explicitApiVersion : "multiple API_VERSIONs";
explicitApiVersion = true;
av = ApiVersion.Companion.parse(directives.get(API_VERSION_DIRECTIVE));
assert av != null : "incorrect API_VERSION";
}
}
CompilerConfiguration configuration = createConfiguration(
configurationKind, getJdkKind(files),
classpath,
@@ -680,14 +670,6 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
files
);
if (explicitApiVersion) {
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, new LanguageVersionSettingsImpl(
CommonConfigurationKeysKt.getLanguageVersionSettings(configuration).getLanguageVersion(), av,
new HashMap<AnalysisFlag<?>, Object>() {{
put(AnalysisFlag.getExplicitApiVersion(), true);
}}));
}
myEnvironment = KotlinCoreEnvironment.createForTests(
getTestRootDisposable(), configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES
);