Commit Graph

15223 Commits

Author SHA1 Message Date
Pavel V. Talanov 76971eca70 Refactor LanguageFeatureSettings: Add LanguageVersion and LanguageFeature entities 2016-05-26 22:16:47 +03:00
Alexander Udalov 2c516f18a0 Add tests on "-language-version" usage from Ant, Maven, Gradle 2016-05-26 22:15:39 +03:00
Alexander Udalov bc5202a4d7 Validate "-language-version" argument value, add tests 2016-05-26 22:15:39 +03:00
Alexander Udalov 331a6ee414 Use LanguageFeatureSettings instead of JVM option for top level sealed classes 2016-05-26 22:15:39 +03:00
Alexander Udalov 98c3e030a1 Support enabling/disabling language features in diagnostic tests 2016-05-26 22:15:39 +03:00
Alexander Udalov e1ba4480d7 Support "-language-version" CLI option for compatibility with older releases
Introduce LanguageFeatureSettings, instance of which should be injected by the
container and be accessible everywhere during the compilation (front-end and
back-end).

Parameters of LanguageFeatureSettings are unused in this commit, will be used
later
2016-05-26 22:15:39 +03:00
Alexey Sedunov ec0f21c887 Spring Support: Fixed rename of custom-named beans specified with Kotlin annotation
#KT-12096 Fixed
2016-05-26 20:59:09 +03:00
Alexey Sedunov 076e31c0f8 Spring Support: Automatic configuration by @Import and @ComponentScan ("basePackages"/"basePackageClasses")
#KT-12135 Fixed
 #KT-12139 Fixed
2016-05-26 20:59:07 +03:00
Alexey Sedunov d69140b7fe Code Insight: Implement package references inside of string literals
#KT-12136 In Progress
2016-05-26 20:59:03 +03:00
Alexey Sedunov d52e62b20d Light Classes: Consider FakeFileForLightClass instances equivalent if they correspond to the light classes with common KtFile
#KT-12117 Fixed
2016-05-26 20:59:01 +03:00
Alexander Udalov d89e907f00 Minor, comment out ignored test 2016-05-26 11:48:00 +03:00
Alexander Udalov 159d88102f Use MODULE_NAME configuration key in JS instead of MODULE_ID 2016-05-26 11:47:30 +03:00
Alexander Udalov 05f8836f46 Move some configuration keys to JVM or to CommonConfigurationKeys
Move CONTENT_ROOTS and SCRIPT_DEFINITIONS_KEY to JVMConfigurationKeys because
they are only used on JVM, rename the latter to SCRIPT_DEFINITIONS.

Move MODULE_NAME to CommonConfigurationKeys to be combined with MODULE_ID in
JSConfigurationKeys in the future
2016-05-26 11:47:30 +03:00
Alexander Udalov 6674412079 Rename compilerConfigurationForTests -> newConfiguration 2016-05-26 11:47:30 +03:00
Alexander Udalov d04624cfe9 Minor, refactor KotlinToJVMBytecodeCompiler#compileModules 2016-05-26 11:47:30 +03:00
Alexander Udalov cad4b6973c Introduce and use JSConfigurationKeys similar to JVMConfigurationKeys
Use type-safe keys in CompilerConfiguration instead of multiple parameters,
duplicated in the base class (JsConfig), derived class (LibrarySourcesConfig)
and its builder (LibrarySourcesConfig.Builder)
2016-05-26 11:47:30 +03:00
Alexander Udalov b65980f3b7 Drop JsConfig#inlineEnabled flag
Use CommonConfigurationKeys#DISABLE_INLINE flag (moved from
JVMConfigurationKeys) in CompilerConfiguration instead, similarly to the JVM
compiler
2016-05-26 11:47:30 +03:00
Alexander Udalov 6889bdbef8 Add CompilerConfiguration to JsConfig
Will be used to store common compiler options (such as source version, inline
disabled, etc) as well as JS-specific options, to unify the logic of compiler
option initialization between JS and JVM compilers
2016-05-26 11:47:30 +03:00
Alexander Udalov 116e4a5ced Rename Config -> JsConfig 2016-05-26 11:47:30 +03:00
Alexander Udalov 2bd3211ba8 Get rid of unnecessary exceptions in JS translator
Before this commit, an internal error during JS translation resulted in the
actual exception wrapped in TranslationRuntimeException wrapped in
TranslationInternalException wrapped in RuntimeException being thrown. This
change gets rid of the two latter wrappings.

Also delete unthrown MainFunctionNotFoundException and related unused
constructors in TranslationException
2016-05-26 11:47:30 +03:00
Alexander Udalov 9418311bda Pass CompilerConfiguration to CLICompiler#doExecute
Extract common CompilerConfiguration setup code to a separate method
2016-05-26 11:47:30 +03:00
Alexander Udalov 3c81bb4bfc Add MessageCollector#hasErrors, get rid of MessageSeverityCollector
Also fix duplicated wrapping of a message collector into a message severity
collector (in CLICompiler and in the beginning of doExecute in
K2JVMCompiler/K2JSCompiler)
2016-05-26 11:47:30 +03:00
Alexander Udalov c5e2f55ea7 Get rid of getModuleName(), pass configuration to createContextWithSealedModule
Add KotlinTestUtils.newConfiguration() which creates a configuration and sets
the module name to the default test one ("test-module")
2016-05-26 11:47:30 +03:00
Alexander Udalov 69343549b7 Move TEST_MODULE_NAME to KotlinTestUtils and change value to "test-module"
This name is more generic and thus can be used everywhere, not only in Java
integration tests
2016-05-26 11:47:30 +03:00
Alexander Udalov 3ca77de924 Remove traces of old compiler plugin architecture
It was retired with the deprecation and subsequent removal of the old KDoc, and
is now unused
2016-05-26 11:47:30 +03:00
Alexander Udalov 0fe39a186e Simplify public methods of KotlinToJVMBytecodeCompiler
Pass as much as possible in the single CompilerConfiguration instance instead
of in separate function parameters. Add corresponding keys to
JVMConfigurationKeys.

Re changes in compileModules: since output directory (stored now under the key
OUTPUT_DIRECTORY) is different for each module, the configuration of the whole
project is no longer applicable when compiling individual modules. Thus we copy
the project configuration for each module and add the output directory value
2016-05-26 11:47:30 +03:00
Alexander Udalov 8c0f78db50 Introduce CompilerConfiguration#getNotNull and getBoolean
To reduce boilerplate at call sites
2016-05-26 11:47:30 +03:00
Alexander Udalov 81a0fa5f47 Minor, fix warnings and improve style in KotlinToJVMBytecodeCompiler 2016-05-26 11:47:30 +03:00
Stanislav Erokhin 4b9aac6318 Replace not debug usages of DescriptorRenderer.DEBUG_TEXT to DescriptorRenderer.FQ_NAMES_IN_TYPES. 2016-05-25 16:31:34 +03:00
Pavel V. Talanov 710e920df7 lightClassUtils: Fix CCE when trying to obtain KtLightTypeParameter
#KT-12259 Fixed
2016-05-25 15:58:11 +03:00
Pavel V. Talanov 62421bbf7b 'const val' are now considered constants by Java in IDEA
#KT-12026 Fixed
2016-05-25 15:58:09 +03:00
Pavel V. Talanov 3cb38e7f02 Implement getLanguageLevel for FakeFileForLightClass
#KT-12006 Fixed
2016-05-25 15:58:07 +03:00
Pavel V. Talanov 695653c447 Replace usages of blocking lazy to LazyThreadSafetyMode.PUBLICATION in light classes to prevent potential deadlocks 2016-05-25 15:44:19 +03:00
Pavel V. Talanov 65e55f045f Fix deadlock: synchronized lazy in KtLightModifierListWithExplicitModifiers 2016-05-25 15:44:18 +03:00
Alexander Udalov 7fd2a016e7 Fix Android codegen tests: use full JDK only when needed
This was accidentally broken in 8a00cabce6
2016-05-25 10:29:50 +03:00
Pavel V. Talanov f59638d60f Minor: prettify ReplState 2016-05-24 15:42:08 +03:00
Pavel V. Talanov 9cff590366 Use ReplState to implement completion in IDE REPL
Consider sucessfully evaluated lines as previous lines when analyzing console file
2016-05-24 15:42:06 +03:00
Pavel V. Talanov dcd7e6d767 Move ReplState to frontend 2016-05-24 15:42:00 +03:00
Pavel V. Talanov 5058e9b4e6 Fix import resolution in Repl
#KT-11428 Fixed

 Refactor ReplState to be a component
2016-05-24 15:41:56 +03:00
Pavel V. Talanov 9f67072098 Minor: ScopeUtils: avoid wrapping lexical scopes several times 2016-05-24 15:41:55 +03:00
Pavel V. Talanov 27bd74f4c5 Refactor: replace LastLineScopeProvider with ReplState, extract FileScopeFactory from FileScopeProviderImpl 2016-05-24 15:41:30 +03:00
Pavel V. Talanov 3b4ade2ca0 Refactor: extract resolve related code from ReplInterpreter to CliReplAnalyzerEngine 2016-05-24 15:36:12 +03:00
Mikhail Glukhikh 9a69b8b7b5 REDUNDANT_OPEN_FOR_INTERFACE warning: reported for open members without implementation #KT-12452 Fixed 2016-05-24 14:25:27 +03:00
Mikhail Glukhikh e66acd8101 Default modality is abstract for interface. REDUNDANT_MODIFIER_FOR_TARGET applicability reduced #KT-12302 Fixed 2016-05-24 14:25:22 +03:00
Mikhail Glukhikh 93defed324 KT-12302: ABSTRACT_MODIFIER_IN_INTERFACE warning is removed as obsolete 2016-05-24 14:25:18 +03:00
Vladislav Golub bb32c2d350 KT-12019 Highlighting of redundant 'if' statements (#871) 2016-05-23 21:02:38 +03:00
Alexander Udalov b9fb6c0d84 Remove dangerous readKotlinHeader() in inlineUtil.kt
It was creating a phantom FileBasedKotlinClass which was not based on any file
2016-05-23 20:00:50 +03:00
Alexander Udalov cf19166eca Move IC-related initialization logic to GenerationState
To further reduce number of parameters of GenerationState's constructor
2016-05-23 14:50:06 +03:00
Alexander Udalov 29c5e655ab Drop several more parameters of GenerationState's constructor
INCREMENTAL_COMPILATION_COMPONENTS and DECLARATIONS_JSON_PATH are already in
the configuration, and Progress was unused
2016-05-23 14:50:06 +03:00
Alexander Udalov f8816b5d67 Pass CompilerConfiguration to GenerationState instead of ton of parameters 2016-05-23 14:49:26 +03:00