From 85d442133d856fd59ff5ec075245f8459defb82c Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 8 Nov 2017 11:06:18 +0300 Subject: [PATCH] Load compiler language version settings for foreign annotations tests To set specific features for compiler tests --- .../CompilerTestLanguageVersionSettings.kt | 6 ++++-- .../checkers/AbstractForeignAnnotationsTest.kt | 14 +++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt index bb5c833eac3..1737e02669b 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt @@ -28,7 +28,8 @@ data class CompilerTestLanguageVersionSettings( private val languageFeatures: Map, override val apiVersion: ApiVersion, override val languageVersion: LanguageVersion, - private val specificFeatures: Map = specificFeaturesForTests() + private val specificFeatures: Map = specificFeaturesForTests(), + private val analysisFlags: Map, Any?> = emptyMap() ) : LanguageVersionSettings { private val delegate = LanguageVersionSettingsImpl(languageVersion, apiVersion) @@ -37,7 +38,8 @@ data class CompilerTestLanguageVersionSettings( languageFeatures[feature] ?: delegate.getFeatureSupport(feature) - override fun getFlag(flag: AnalysisFlag): T = flag.defaultValue + @Suppress("UNCHECKED_CAST") + override fun getFlag(flag: AnalysisFlag): T = analysisFlags[flag] as T? ?: flag.defaultValue } private fun specificFeaturesForTests(): Map { diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt b/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt index d8b8a673f0c..fec41d8ac7e 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2017 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. @@ -17,7 +17,10 @@ package org.jetbrains.kotlin.checkers import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime -import org.jetbrains.kotlin.config.* +import org.jetbrains.kotlin.config.AnalysisFlag +import org.jetbrains.kotlin.config.ApiVersion +import org.jetbrains.kotlin.config.LanguageVersion +import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.MockLibraryUtil @@ -61,7 +64,12 @@ abstract class AbstractForeignAnnotationsTest : AbstractDiagnosticsTest() { override fun loadLanguageVersionSettings(module: List): LanguageVersionSettings { val analysisFlags = loadAnalysisFlags(module) - return LanguageVersionSettingsImpl(LanguageVersion.LATEST_STABLE, ApiVersion.LATEST_STABLE, analysisFlags) + return CompilerTestLanguageVersionSettings( + DEFAULT_DIAGNOSTIC_TESTS_FEATURES, + ApiVersion.LATEST_STABLE, + LanguageVersion.LATEST_STABLE, + analysisFlags = analysisFlags + ) } private fun loadAnalysisFlags(module: List): Map, Any?> {