Commit Graph

129 Commits

Author SHA1 Message Date
Pavel V. Talanov db5303c019 Implement modules in IDE
IDE:
Rewrite AnalyzerFacade and implementations for JS and JVM to support creating separate analyzers for each module
Introduce ModuleInfo which is an intermediate entity between configuration (tests or idea modules) and ModuleDescriptor
Implement IdeaModuleInfos which represent IDEA modules, sdks and libraries
Add (somewhat thin) test checking their behaviour
Implement getModuleInfo() - utility to obtain IdeaModuleInfo for PsiElement
Drop Project.getLazyResolveSession() - not possible to obtain resolve session for the whole project any more
Adjust JavaResolveExtension accordingly
KotlinSignature Intention/Marker - make sure that analyzed element is cls element (he's not in resolve scope otherwise)

LightClasses:
Create separate package light classes for each module
Java code can only reference light class from the first module among it's dependencies
Duplicate jvm signature is only reported on package declarations inside one module

Injectors:
Receive GlobalSearchScope as paramer for VirtualFileFinder and JavaClassFinder
which allows to narrow analyzer scope

JDR:
Introduce ModuleClassResolver resolves java classes in correct java descriptor resolver (corresponding ModuleDescriptor)
Add test checking that java classes belong to correct module

Debugger:
Provide context to analyze files created by debugger in

Converter:
Postprocessor now needs a context to analyze resulting code in

JetPsiFactory:
Add verification that files created by psi factory are not analyzed without context (that is almost never a good idea)

Other:
Use new API in various tests, utilities, run configuration producers and builtin serializers
Various "TODO: (module refactoring)" which mark the unfinished parts
2014-08-22 22:58:54 +04:00
Pavel V. Talanov 8496c535aa Replace ModuleDescriptorImpl implementation
Change the way modules are configured:
Add dependencies on other modules instead of adding additional package fragment providers
Refactor related code
Drop DependencyKind
Hide common new module creation in CliLightClassGenerationSupport
2014-07-31 21:25:49 +04:00
Pavel V. Talanov 7269e383cf Rewrite JetPsiFactory to kotlin, make project a property
Instead of passing to every function
All static methods are now member functions
2014-07-15 16:41:12 +04:00
Alexander Udalov b9fd52739f Move around some descriptor implementations
- mutable class, mutable package fragment and their dependencies go to module
  'frontend'
- ModuleDescriptorImpl and PackageFragmentDescriptorImpl are moved to the
  package "impl" in their module
2014-07-07 18:15:31 +04:00
Andrey Breslav afca70eb41 Test for nullability annotations generalized and generated 2014-06-19 22:10:57 +04:00
Valentin Kipyatkov ffa3ff3bbd Generating test output when file is missing: removing trailing whitespaces 2014-06-03 17:29:00 +04:00
Andrey Breslav 236f38a26b Support modules in multi-file tests 2014-05-19 11:39:37 +04:00
Nikolay Krasko f11e35f988 Don't check trailing spaces because idea removes them by default 2014-05-16 17:09:47 +04:00
Andrey Breslav 4cb23eb1f1 A test for the case of finding binary class for a nested Java class 2014-05-14 18:58:57 +04:00
Alexander Udalov 888a6c0c9b Add tests on Kotlin against compiled Java+Kotlin
The original purpose was to create a test that parameter names are inherited on
a K-J-K hierarchy when "K-J" is compiled to bytecode, but that's not possible
right now because of KT-4509
2014-05-14 18:58:57 +04:00
Andrey Breslav af9694738e JvmResolveUtil extracted for methods that are used only for tests 2014-04-23 14:06:13 +04:00
Andrey Breslav 77261330b9 Only use script parameters from definition
Passing parameters of a _single_ script into TopDownAnalyser makes no sense
2014-04-01 12:25:33 +04:00
Natalia Ukhorskaya d9d045cbb2 Fix line separators for windows in tests 2014-03-07 18:05:12 +04:00
Ilya Klyuchnikov ea40389e34 validating android annotations 2014-03-04 14:28:53 +04:00
Andrey Breslav ff762a4467 Use JDK annotations downloaded from a KAnnotator build 2014-02-21 19:23:41 +04:00
Tuomas Tynkkynen 7429cc8819 Make JetTestUtils.getLastCommentInFile() to allow trailing newline
Many editors add a trailing newline when saving. Allow them in
getLastCommentInFile.
2014-02-09 17:22:10 +04:00
Tuomas Tynkkynen 420a08167b Extract JetTestUtils.getLastCommentInFile()
JetNameSuggesterTest contains useful code for getting the last comment
of a file. Extract it to JetTestUtils.getLastCommentInFile() so other
tests can use it as well.
2014-02-09 17:22:07 +04:00
Zalim Bashorov d032b5589c Frontend: fixed resolve annotation parameters on properties, accessors, accessor parameters, function parameters when not need complete analysis. 2014-01-27 15:34:55 +04:00
Andrey Breslav df88e3e625 Introducing dependency kinds to prioritize package fragments 2014-01-15 16:16:21 +04:00
Evgeny Gerashchenko b41a3f8558 Got rid of "namespace" word in compiler code. 2014-01-14 18:06:50 +04:00
Natalia Ukhorskaya f2f1a1313d Add jdk jars to kotlin classpath
#KT-4214 Fixed
2013-12-26 13:50:10 +04:00
Pavel V. Talanov 741e031ff1 Converter:
Use formatter in converter tests
Reformat test data
2013-12-22 16:46:51 +04:00
Svetlana Isakova dd6940be41 added CHECK_TYPE directive to diagnostic tests 2013-12-19 13:01:05 +04:00
Evgeny Gerashchenko 1c25c971e0 Corrected test error message. 2013-12-17 20:28:58 +04:00
Evgeny Gerashchenko d0605009ae Removed ModuleConfiguration. 2013-12-17 20:28:40 +04:00
Evgeny Gerashchenko 7abe6a5b4a Big refactoring. Migrating to package views and fragments. 2013-12-17 19:18:33 +04:00
Svetlana Isakova 928f77ffce set explicit receiver kind properly for calls 2013-12-16 16:24:21 +04:00
Natalia Ukhorskaya f218bd1df2 Add NotNull annotations 2013-12-05 15:19:23 +04:00
Andrey Breslav 8f45f73340 JetControlFlowTest rewritten to generator 2013-11-29 14:48:31 +04:00
Nikolay Krasko 87fac21310 Auto generate test for rename 2013-11-26 19:19:59 +04:00
Andrey Breslav 083644ea43 Support parameter annotations. Fix class path and test data 2013-11-21 13:07:36 +04:00
Alexander Udalov 69ed375ce1 Extract SpecialNames utility class 2013-11-14 19:11:19 +04:00
Pavel V. Talanov 2a5657e0e6 Convert JavaToKotlinTranslator, StandaloneJavaToKotlinConverterTest, TestCaseBuilder to Kotlin 2013-10-29 21:03:34 +04:00
Andrey Breslav 6e76e57b4c Trim strings before comparison 2013-10-28 12:04:08 +04:00
Andrey Breslav 3bb14c2d4e Throwing FileComparisonFailure enables opening test data file in diff dialog right from the test console 2013-10-25 19:55:42 +04:00
Svetlana Isakova 2f02427c57 changed DiagnosticMessageTest
added test arguments to test data
2013-10-16 20:41:23 +04:00
Alexander Udalov d4aaed2787 Don't add kotlin-runtime to classpath in CliTest
Also remove testing code from KotlinToJVMBytecodeCompiler, delete code
duplication, etc.
2013-10-16 19:02:46 +04:00
Andrey Breslav 1d540181b0 Produciton code uses a shared application between many projects.
Tests always dispose the application together with JetCoreEnvironment
2013-10-15 15:28:28 +04:00
Andrey Breslav 4b991f7254 Test that built-in binaries are up to date 2013-09-26 09:04:59 -07:00
Andrey Breslav 887e4276ee getDiagnostics() in BindingContext returns Diagnostics rather than List<Diagnostic> 2013-09-24 06:58:39 -07:00
Andrey Breslav 67b23ceda7 assertEqualsToFile() extracted as a common utility 2013-09-24 06:58:38 -07:00
Alexander Udalov 215a5f46b6 Move ROOT_NAMESPACE_NAME to DescriptorUtils
KotlinBuiltIns depends on it, but it cannot depend on JetPsiUtil, because
descriptors module should not depend on PSI
2013-09-18 16:41:47 +04:00
Evgeny Gerashchenko 3f89598f14 Minor. Made method @NotNull. 2013-09-12 14:58:57 +04:00
Andrey Breslav db2b19c50f Support filtering diagnostics in tests 2013-09-04 13:07:25 +04:00
Alexander Udalov 2d7a5ebf36 Simplify injectors for frontend.java
- delete InjectorForJavaSemanticServices, replace its usages with
  InjectorForJavaDescriptorResolver
- delete unneeded fields and parameters of InjectorForJavaDescriptorResolver
2013-08-26 15:59:57 +04:00
Alexander Udalov 4655e41603 Minor, use existing utility method 2013-08-23 17:39:15 +04:00
Alexander Udalov 1acc1564d9 Add KotlinInfo annotation, serialize classes to bytecode 2013-08-23 17:39:11 +04:00
Andrey Breslav 1472499874 Utility methods moved to JetTestUtil 2013-08-23 17:38:49 +04:00
Nikolay Krasko 4e67566e58 Add utility method for getting before and after text 2013-06-07 17:24:19 +04:00
Andrey Breslav 4111e78ac2 ModuleDescriptor stores a PlatformToKotlinClassMap 2013-04-17 17:11:18 +04:00