Commit Graph

57763 Commits

Author SHA1 Message Date
Ilya Kirillov cb569f8493 Do not use resolving to understand which method we use in "replace get or set inspection" 2019-09-24 17:21:49 +03:00
Ilya Kirillov 4e27d2e658 New J2K: do not use global write action for some post-processings which may use resolving while applying
Also, modify that post-processings & inspections to explicitly use write action
when modifying PSI elements

#KT-33875 fixed
2019-09-24 17:21:49 +03:00
Ilya Kirillov 74ba5b210a New J2K: do not analyze code for post-processings in edt thread 2019-09-24 17:21:48 +03:00
Ilya Kirillov e6f2e0041c New J2K: get rid of generalInspectionPostProcessing 2019-09-24 17:21:47 +03:00
Ilya Kirillov a4cf7a912b Split some non applicability based inspections into isApplicable and apply
This is needed to fit new nj2k post-processing structure
2019-09-24 17:21:47 +03:00
Ilya Kirillov 3724e2bb02 New J2K: convert all custom post-processing to applicability based ones 2019-09-24 17:21:46 +03:00
Ilya Kirillov 509fcb17c7 New J2K: consider empty/singleton children list when comparing trees in default arguments conversion 2019-09-24 17:13:13 +03:00
Ilya Kirillov 704b3bd2e6 New J2K: always print real fqNames for static calls
As fqNames of some symbols may change during conversion
E.g, when moving Java static method to Kotlin companion object

#KT-19607 fixed
#KT-32903 fixed
#KT-33743 fixed
#KT-33556 fixed
2019-09-24 17:13:12 +03:00
Ilya Kirillov f9fac0acf5 New J2K: do not save import statements in files as we print fqNames for calls
This may cause conflicts on shortening fq references post-processing step
2019-09-24 17:13:11 +03:00
Dmitry Savvinov e3b7b41544 Minor: rename globalFacade -> facadeForModules 2019-09-24 17:05:05 +03:00
Dmitry Savvinov 937d041bc3 Minor: rename file ResolverForProjectImpl.kt -> AbstractResolverForProject 2019-09-24 17:05:05 +03:00
Dmitry Savvinov bef33e971f Make ResolverForProject own BuiltInsCache
Previously, BuiltInsCache was a separate abstraction with its own
lifecycle. In particular, it had a CachedValue inside, which uses
SoftReference to hold the computed data. This is bad, because this might
lead to disalignment of lifetimes with respective ResolverForProject,
leading to potential exceptions in analysis, see KT-33504 for details.

This commit fixes it by making root ResolverForProject own BuiltInsCache
and removing any logic about invalidation from BuiltInsCache. So, now,
BuiltInsCache is disposed iff corresponding ResolverForProject is
disposed

^KT-33504 Fixed
2019-09-24 17:05:05 +03:00
Dmitry Savvinov bfacc1a3c5 Introduce AbstractResolverForProject
Previously, ResolverForProjectImpl had multiple callbacks in
constructor. Some of those callbacks were used only to overcome module
visibility and provide an ability to inject IDE-specific logic into
compiler (ResolverForProject is in the 'compiler'-module)

This commit introduces abstract class which implements
environment-independent logic (previously, this logic had been stored in
ResolverForProjectImpl) with several abstract met hods (previously,
callbacks). Then, we provide few concrete implementations of
AbstractResolverForProject with clear semantics:

- IdeaResolverForProject: resolver used in IDE, where we have indices,
  oracles, multiple modules, etc.
- ResolverForSingleModuleProject: resolver for project with only one
  module, commonly used for CLI compiler/tests
- one anonymous implementation for MultimoduleTests

This refactoring achieves several things:
- now it is easier to see what kinds of ResolverForProject you might see
  in some particular environment (previously, one had to inspect all
  call-sites of constructor)
- we can easily add IDE-specific logic in IdeaResolverForProject without
  adding noisy callbacks (which most probably wouldn't have any other
  non-trivial implementations)
2019-09-24 17:05:05 +03:00
Dmitry Savvinov 48719c4050 Minor: extract ResolverForProjectImpl into separate file 2019-09-24 17:05:05 +03:00
Dmitry Savvinov 1e288c03c3 Minor: fix typos in KDoc 2019-09-24 17:05:04 +03:00
Dmitry Savvinov 4f700f5df3 Minor: drop unused parameter from createFacadeForScriptDependencies 2019-09-24 17:05:04 +03:00
Andrey Uskov 8ff4a92562 Fix serialization of data nodes tree
#KT-33987 Fixed
2019-09-24 16:27:13 +03:00
Ilya Kirillov 41f7519244 Fix old j2k test data to actual one 2019-09-24 16:22:24 +03:00
Vladimir Dolzhenko 8b0aeb9a55 Do not resolve services in non-default ctors 2019-09-24 15:15:37 +02:00
Toshiaki Kameyama 0e1e1e350f "Convert lambda to reference": do not remove required backticks
#KT-15700 Fixed
2019-09-24 19:45:53 +07:00
Toshiaki Kameyama 44edd94fea "Create member function" quick fix: do not add redundant semicolons after enum entry
#KT-14899 Fixed
2019-09-24 19:40:31 +07:00
Toshiaki Kameyama 0497f0cba4 "Create enum constant" quick fix: add before semicolon
#KT-33718 Fixed
2019-09-24 19:31:52 +07:00
Toshiaki Kameyama 30c41e6720 "Create type parameter from usage": don't suggest for not extension property
#KT-33300 Fixed
2019-09-24 19:28:40 +07:00
Toshiaki Kameyama 68609401c4 Reformat CreateTypeParameterByUnresolvedRefActionFactory 2019-09-24 19:28:40 +07:00
Toshiaki Kameyama 5b666ff33f "Create type parameter from usage": don't remove backticks if necessary
#KT-33299 Fixed
2019-09-24 19:24:02 +07:00
Ilya Goncharov bfc698a521 Add comment for log-reporter and its necessity 2019-09-24 14:36:11 +03:00
Ilya Goncharov 09e2ebe60a Both js targets use one TC service message classes 2019-09-24 14:36:11 +03:00
Ilya Goncharov 7d4b43f819 Remove annoying spaces in karma-teamcity-reporter 2019-09-24 14:36:10 +03:00
Ilya Goncharov b4e3cf1d7a Move teamcity reporting only to nodejs 2019-09-24 14:36:10 +03:00
Ilya Goncharov 46e82468e4 Provide logging through kotlin-test=js-runner 2019-09-24 14:36:10 +03:00
Ilya Goncharov f0e72c4d71 Remove mangling for kotlin-test-js-runner 2019-09-24 14:36:10 +03:00
Ilya Goncharov e59d1a0ef1 Use terser instead of uglify 2019-09-24 14:36:10 +03:00
Toshiaki Kameyama 784ba69b7a "Cleanup code": remove 'final' keyword for overridden function with non-canonical modifiers order
#KT-33060 Fixed
2019-09-24 18:28:00 +07:00
Steven Schäfer f49d5da929 JVM IR: Fix enum constructor visibility 2019-09-24 13:28:08 +03:00
Kristoffer Andersen 52dc469657 JVM IR: Generate synthetic methods for type aliases with annotations 2019-09-24 12:21:42 +02:00
romanart acd1cc5a57 [KLIB] Normalize path string to keep file order on Windows OS 2019-09-24 12:41:48 +03:00
Dmitry Gridin 1ee827bfc8 Import quick fix: support provideDelegate
#KT-28049 Fixed
2019-09-24 16:27:10 +07:00
Toshiaki Kameyama 79199260b9 Import quick fix: suggest for operator extension function called from name reference
#KT-28049 Fixed
2019-09-24 16:27:09 +07:00
Toshiaki Kameyama 998adfb098 Move variable declaration into when: don't report when property has 'break' or 'continue'
#KT-31999
2019-09-24 12:11:41 +03:00
Toshiaki Kameyama 877e583a96 Move variable declaration into when: don't report when property has 'return' or 'throw'
#KT-31999 Fixed
2019-09-24 12:11:41 +03:00
Toshiaki Kameyama d9d04fc556 "Create enum constant" quick fix: do not add redundant empty line
#KT-32981 Fixed
2019-09-24 13:23:06 +07:00
Dmitry Gridin 5dddc464a5 Completion: add tests for case with overloaded function with lambda with receiver parameter
Relates to #KT-31073
2019-09-23 23:20:26 +07:00
Dmitry Gridin e3ce799993 Refactoring: change signature should affected expect/actual
#KT-33972 Fixed
2019-09-23 23:01:47 +07:00
Dmitry Gridin 484dda478e AbstractIntentionTest: should check startInWriteAction flag 2019-09-23 23:01:46 +07:00
Dmitry Gridin 667e9a33e8 AbstractIntentionTest: cleanup code 2019-09-23 23:01:46 +07:00
Dmitry Gridin cbdda6f9a8 KotlinChangeSignatureData: cleanup code 2019-09-23 23:01:46 +07:00
Nikolay Krasko 7271e65851 Don't store hard references to psi elements in transferable data (KT-33802)
This leads to project leaked errors in tests.
2019-09-23 18:58:11 +03:00
Igor Yakovlev f8bd3518dc UL method and parameter Move&Rename refactoring 2019-09-23 17:30:15 +03:00
Igor Yakovlev fc70fd05fc Enable kotlin.collections support for UL classes
Removed restriction for classes derived from Kotlin collections
Added type erasure for java collection overrided methods
2019-09-23 17:30:15 +03:00
Igor Yakovlev 286702a99c Format code for NoArgPlugin 2019-09-23 17:07:33 +03:00