Commit Graph

60 Commits

Author SHA1 Message Date
Ilya Chernikov dfec16d8e0 Refactor script resolving interface
- return Future from resovler
- pack script contents data to a separate interface
 -extend script dependencies with additional scripts property
 - minor renames and moves
2016-06-30 21:32:39 +02:00
Alexander Udalov 1690dcd8df Refactor FakeCallResolver and usages
Remove useless overload, inline another to the single usage in tests, make some
parameters non-null
2016-06-30 21:29:23 +03:00
Ilya Chernikov 4f05f839a3 Add previous imports to resolving interfaces to enable effective caching implementations 2016-06-25 22:24:45 +03:00
Ilya Chernikov 64bb47ed37 Switch to File instead of String for classpaths in script dependencies 2016-06-25 22:24:30 +03:00
Ilya Chernikov 082290f8e3 Refactor script dependencies management 2016-06-25 22:24:23 +03:00
Ilya Chernikov 402e8c1e3e Add dependency from annotation extraction mechanisms to the prototype, with tests 2016-06-25 22:24:14 +03:00
Alexander Udalov b4f81d4bb5 Use 'JVM_TARGET: 1.8' directive in codegen tests on 1.8 target 2016-06-16 16:51:18 +03:00
Mikhael Bogdanov fc8058848f Added classVersion to KotlinJvmBinaryClass 2016-06-15 13:43:26 +03:00
Mikhael Bogdanov 0169f10bf3 Support directives in write flag tests 2016-06-15 13:43:23 +03:00
Mikhael Bogdanov 5d5734841b Compile logic moved from AbstractBlackBoxCodegenTest to CodegenTestCase 2016-06-15 13:43:23 +03:00
Mikhael Bogdanov dce260563c Support directives in CompileKotlinAgainstKotlinTest 2016-06-15 13:43:22 +03:00
Stanislav Erokhin 1d9ca06b96 Remake KotlinTypes. 2016-06-09 12:57:59 +03:00
Stanislav Erokhin 3a451744c5 Introduce KotlinTypeFactory 2016-06-09 12:57:43 +03:00
Ilya Chernikov e8c13882b4 Make script detection API generic, fix tests 2016-06-07 21:13:05 +02:00
Ilya Chernikov 478ae96e50 Implement a compiler config key to add preconfigured extra imports for scripts 2016-06-07 21:13:01 +02:00
Ilya Chernikov abfda50077 Workaround URISyntaxException in tests on windows + JDK 6 2016-06-07 21:12:58 +02:00
Ilya Chernikov 3e17724e58 Implement class finder for customized scripts resolving - not yet completely functional 2016-06-07 21:12:54 +02:00
Ilya Chernikov 834bb51643 Add tests with partial classpath for script compilation 2016-06-07 21:12:39 +02:00
Ilya Chernikov 770ef16ef7 Replace script recognition from by PsiFile to by virtual file, fix custom script name generation 2016-06-07 21:11:28 +02:00
Ilya Chernikov d225385d19 Add name and classpath to KotlinScriptDefinition 2016-06-07 21:11:26 +02:00
Ilya Chernikov e1ca45f360 Add support for script base class with parameters
including possibility to describe which script params to pass to superclass
2016-06-07 21:11:24 +02:00
Ilya Chernikov 3c1503564e Add possibility to specify supertypes for script, with tests 2016-06-07 21:11:23 +02:00
Ilya Chernikov 670627ac4e Add helpers, compilation function and tests for passing classes as a parameters to a script 2016-06-07 21:11:23 +02:00
Pavel V. Talanov 76971eca70 Refactor LanguageFeatureSettings: Add LanguageVersion and LanguageFeature entities 2016-05-26 22:16:47 +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
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 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 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 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
Alexander Udalov 1492c71e88 Refactor old test utility in LoadDescriptorUtil
Also make USE_TYPE_TABLE a flag in CompilerConfiguration instead of an extra
boolean parameter in numerous methods
2016-05-23 14:47:00 +03:00
Alexander Udalov 76d78ba666 Remove LazyResolveTestUtil, refactor usages to use JvmResolveUtil
LazyResolveTestUtil.resolve by now had almost exactly the same code as
JvmResolveUtil.analyze.

LazyResolveTestUtil.resolveLazily with 3 parameters was only used in
LoadBuiltinsTest, inline it there.

Move LazyResolveTestUtil.getTopLevelPackagesFromFileList to
AbstractDiagnosticsTest, the only place where it was used
2016-05-23 14:47:00 +03:00
Alexander Udalov a85e98a078 Minor, inline unnecessary method of TopDownAnalyzerFacadeForJVM
The TopDownAnalysisMode parameter was TopLevelDeclarations everywhere
2016-05-23 14:47:00 +03:00
Alexander Udalov 0124cb64f0 Cleanup test utilities in JvmResolveUtil and GenerationUtils
Simplify usages and fix some warnings along the way.

Rename:
- analyzeFilesWithJavaIntegration, analyzeOneFileWithJavaIntegration -> analyze
- analyzeFilesWithJavaIntegrationAndCheckForErrors,
  analyzeOneFileWithJavaIntegrationAndCheckForErrors -> analyzeAndCheckForErrors
- compileFilesGetGenerationState, compileManyFilesGetGenerationStateForTest ->
  compileFiles
- compileFileGetGenerationStateForTest -> compileFile
- compileFileGetClassFileFactoryForTest -> compileFileTo
2016-05-23 14:47:00 +03:00
Alexander Udalov 6d6488e795 Pass CompilerConfiguration to TopDownAnalyzerFacadeForJVM
In most cases, the configuration can be loaded from KotlinCoreEnvironment. In
other cases, such as IDE tests, there's no environment, so we pass EMPTY. Since
currently the configuration is only used to load incremental compilation
components and module information, it's fine to pass EMPTY
2016-05-23 14:47:00 +03:00
Alexander Udalov 6c0ff40197 Move JVMConfigurationKeys to frontend.java
Similarly to K2JVMCompilerArguments, they will soon be needed in the IDE code.
Move COMPILER_JAR_LOCATOR to CLIConfigurationKeys because it's used both in JVM
and JS, and only in CLI. Other keys, non-relevant in the IDE, may be moved out
soon as well, such as incremental compilation components
2016-05-23 14:47:00 +03:00
Dmitry Petrov a2ec580119 KT-11588 Type aliases
Type alias stubs indexing (required for index-based declaration providers)
2016-05-20 14:17:26 +03:00
Dmitry Petrov a4406687f1 KT-11588 Type aliases
Resolution & expansion for type aliases.
NB: Nested type aliases capturing type parameters of outer classes are not supported yet.
2016-05-20 14:17:24 +03:00
Stanislav Erokhin 74bddcfb70 Refactoring. Convert Annotated to kotlin. 2016-05-20 09:32:55 +03:00
Alexander Udalov b208995d73 Render different class kinds differently in bytecode listing test 2016-05-20 00:36:56 +03:00
Stanislav Erokhin f376c418dc Fix SOE related exact annotation and completion 2016-05-16 18:32:16 +03:00
Denis Zharkov e90c92f8d3 Separate additional built-in members from JDK into three groups
- White list: can be used as common built-in declaration
- Black list: can be used only for overrides and super-calls-
- Not considered members: ones that is not in black or white list.
Such members can be used in any context, but they usages marked as deprecated

Third kind is needed to make possible use declarations added in future JDK versions.
Deprecation is necessary because they may get into black list in next Kotlin compiler version
2016-05-16 15:38:13 +03:00
Alexey Tsvetkov 10b9be9f51 Fix collecting source retention annotations
#KT-12187 fixed
2016-05-11 20:41:48 +03:00
Mikhael Bogdanov ed60cf8c55 Added support for reflection tests on android 2016-05-11 18:07:26 +03:00
Dmitry Jemerov d7b1526cd5 preserve leading indentation in KDoc code blocks
#KT-9933 Fixed
2016-05-06 22:11:38 +02:00
Michael Bogdanov e2ae2f313c Support test with self imports, kotlin multifile tests 2016-04-29 16:33:04 +03:00
Valentin Kipyatkov b551886889 Code cleanup: removed redundant semicolons 2016-04-29 11:26:25 +03:00
Denis Zharkov 5bc5722051 Load additional JDK functions into built-ins member scope
#KT-5990 Fixed
 #KT-7127 Fixed
 #KT-10370 Fixed
2016-04-25 17:41:08 +03:00