Commit Graph

2103 Commits

Author SHA1 Message Date
Dmitry Jemerov 84418738a7 Optimize library kind detection and make it interruptible 2017-07-03 12:02:50 +02:00
Valentin Kipyatkov 8fabb6945e Allow slice rewrite in trace when in IDE 2017-06-30 11:21:16 +03:00
Valentin Kipyatkov 09dbb07fb8 Optimization to reuse BindingContext in completion 2017-06-30 11:21:15 +03:00
Mikhail Glukhikh 840847e47c Code cleanup: several inspections applied 2017-06-29 16:25:57 +03:00
Alexander Udalov e32880d9a3 Implement Java 9 module visibility checks
In this commit, only IDE tests are added, because we look for module
declarations in the IDE across the whole project, whereas in the
compiler we should do this on the module path only and that requires
separate work (KT-18599) which is done in the following commits.

(The change in Cache.kt is needed so that
JvmModuleAccessibilityChecker.ClassifierUsage, which is an inner class,
would be injected properly.)

 #KT-18598 In Progress
 #KT-18599 In Progress
2017-06-29 15:59:56 +03:00
Alexey Sedunov 6b18ff1d97 Copy/Move: Fix processing of calls used as callees
#KT-18241 Fixed
2017-06-22 19:50:50 +03:00
Mikhail Zarechenskiy 837df66c19 Register reference contributor for collection literals
#KT-18551 Fixed
2017-06-21 00:16:28 +03:00
Nikolay Krasko 44d3b8fb1a Ignore sub-queries for other operators with the same receiver (KT-18566)
ExpressionsOfTypeProcessor searches for all occurence of expression
with given type. It start from usages of the class, searches for sub-classes,
declarations that return those classes, usages of these declarations,
and so on.

During this search, find usages for all operators that return the
subject type is executed as sub-queries. Full search for such queries
can't give addition types. And it also shouldn't give additional scopes
for search, because same scopes should be located by operands. In other
words, if sub-query can spot the scope of usage starting from the same
type, the original query should also process same scope.

 #KT-18566 Fixed
2017-06-20 16:53:05 +03:00
Alexey Sedunov db3172a750 Configuration: Inline createDefaultArguments() methods
It's a superficial fix: the bug is actually caused by
uninitialized companion instance reference in
Kotlin2JvmCompilerArgumentsHolder class

 #KT-18505 Fixed
2017-06-19 18:15:40 +03:00
Mikhail Glukhikh e8b0d47765 PlainTextPasteImportResolver: use relevant facade for Java classes
Fixes EA-75803 for this particular case
2017-06-16 17:17:38 +03:00
Nikolay Krasko 6e9c0a0fda Move test logging processing in find usages to single place 2017-06-15 14:00:43 +03:00
Nikolay Krasko 60c8d5dcc0 Fix search usages for invoke() with vararg parameter (KT-18479)
#KT-18479 Fixed
2017-06-15 14:00:42 +03:00
Nikolay Krasko 018d4653e8 Fix search usages for invoke() extension operator (KT-18269)
#KT-18269 Fixed
2017-06-15 14:00:41 +03:00
Pavel V. Talanov 46512f34e4 Fix 'Find symbol' and 'Go to declaration' when jar is used in many libs
SourceNavigationHelper takes into account all the module infos
    that given virtual file is a part of

 #KT-15093 Fixed
2017-06-15 13:35:40 +03:00
Dmitry Jemerov a2427c64a1 Reset library caches on file types change and dumb mode enter/exit
Ref: https://github.com/JetBrains/intellij-community/commit/50df476199043bde25b8220c8a8ff2f3545bd325
2017-06-14 18:08:52 +02:00
Mikhail Glukhikh 94dcadbec7 filterNotInSource: retains only files in contentScope
So #KT-18221 Fixed
2017-06-14 18:22:52 +03:00
Mikhail Glukhikh 81a1f26b1d Rename: findSyntheticFiles -> filterNotInSource 2017-06-14 18:22:46 +03:00
Mikhail Glukhikh 7734ec3bd5 Do not highlight semantics in files not under module content
Related to KT-18221
2017-06-14 18:22:40 +03:00
Mikhail Glukhikh 2a1c101350 Use NotUnderContentRootModuleInfo only from PsiElement.getModuleInfo()
This makes getModuleInfoByVirtualFile nullable
Fixes a variant of EA-75803 (from moveConflictUtils)
2017-06-14 18:22:24 +03:00
Mikhail Glukhikh ada697c6b0 Highlighting visitor: make holder immutable 2017-06-13 15:18:10 +03:00
Mikhail Glukhikh 945859ae4d Remove non-actual suppress 2017-06-13 15:18:05 +03:00
Mikhail Glukhikh d5e605d5cc Distinguish captured highlighting from local variable / parameter
So #KT-14271 Fixed
2017-06-13 15:17:59 +03:00
Mikhail Glukhikh aa3589004e Highlighting visitor: refactoring
Do not call AnnotationHolder functions directly,
only via HighlightingVisitor
2017-06-13 15:17:53 +03:00
Mikhail Glukhikh f225d8dea5 J2K: HighlightingVisitor, AfterAnalysisHighlightingVisitor 2017-06-13 15:17:48 +03:00
Alexey Sedunov ff5a52b445 Analyze Data Flow: Respect member hierarchies
#KT-11994 In Progress
2017-06-09 17:19:22 +03:00
Alexey Sedunov ea7d535ae7 Analyze Data Flow: Support properties with custom accessors
#KT-11994 In Progress
2017-06-09 17:19:20 +03:00
Alexey Sedunov 0f44dd6ab0 Analyze Data Flow: Support dereference processing
#KT-11994 In Progress
2017-06-09 17:19:16 +03:00
Nikolay Krasko ba34ed89d3 Allow to report exceptions in internal mode when updates are available 2017-06-08 17:21:13 +03:00
Alexey Sedunov a0629bfc58 Rename: Fix rename of import alias referring to object member
#KT-18096 Fixed
2017-06-08 14:37:35 +03:00
Alexander Udalov cbaa676c3d Move some declarations between 'descriptors' and 'deserialization'
- Move the following from 'deserialization' to 'descriptors':
  NotFoundClasses.kt
  AdditionalClassPartsProvider.kt
  ClassDescriptorFactory.kt
  PlatformDependentDeclarationFilter.kt
  findClassInModule.kt
- Move the following form 'descriptors' to 'deserialization':
  BuiltInSerializerProtocol.kt
  builtInsPackageFragmentProvider.kt
- Extract a marker interface from BuiltInsPackageFragment and move its
  implementation to 'deserialization'
- Change the type of parameters in PlatformDependentDeclarationFilter
  and AdditionalClassPartsProvider to ClassDescriptor

This will help in getting rid of the circular dependency of
'descriptors' <-> 'deserialization'
2017-06-06 14:29:18 +03:00
Alexander Udalov a236400785 CLI: drop CommonCompilerArguments.createDefaultInstance
Move the corresponding default value initializers to the field
declarations
2017-06-06 14:17:26 +03:00
Zalim Bashorov 13aeb171bd Provide more info for EA-89216 2017-05-26 15:06:32 +03:00
Dmitry Petrov a86fe89aae Include file name for package-level members in diagnostics 2017-05-26 13:58:46 +03:00
Dmitry Petrov 17eab2865d Include containing declaration name in message for JVM signature clashes
#KT-9359 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov 7518119bff Fix diagnostic message for abstract member not implemented
Diagnostic messages should describe a problem,
and should not suggest taking actions.
That's a prerogative of quick fixes in IDE.

 #KT-5066 Fixed
2017-05-26 13:58:46 +03:00
Mikhail Zarechenskiy 400ecd5e13 Support destructuring declarations in scripts and REPL
#KT-5620 In Progress
 #KT-15810 In Progress
2017-05-25 16:46:04 +03:00
Pavel V. Talanov f701f8f590 Cache GSScope by dependencies in ScriptDependencyModuleInfo
Removing state in previous commit led to 'toVfsRoots' being called to often
2017-05-22 19:12:09 +03:00
Pavel V. Talanov 4f3b68f8e9 Avoid caching state in ScriptModuleInfos
This led to caching stale dependencies

 #KT-17770 Fixed
2017-05-22 18:37:00 +03:00
Alexander Udalov f8e82f148a Drop TypeLazinessToken and LazyResolveToken 2017-05-22 18:15:19 +03:00
Pavel V. Talanov 8fc953f529 Modules with different language levels can't be analyzed together
"Supports additional builtIn members" setting
    is basically adding members to some types
If we analyze them toghether other modules would leak types
    that have those members (or don't) into other modules scopes
    leading to code that has erroneous highlighting

See KT-17357

#KT-17357 Fixed
2017-05-22 17:42:21 +03:00
Alexey Sedunov 6049bb8238 Configuration: Use project-level JVM target when facet is absent
#KT-17722 Fixed
2017-05-22 13:51:06 +03:00
Dmitry Jemerov ded5bfb841 Show calls of TODO() function in TODO view
#KT-8617 Fixed
2017-05-19 18:23:45 +02:00
Simon Ogorodnik dba9011563 Check for batch PSI children update when invalidating package cache
#KT-17868 fixed
2017-05-19 13:07:30 +03:00
Alexey Sedunov a80fb6f20f Copy: Report module accessibility conflicts 2017-05-18 14:22:39 +03:00
Pavel V. Talanov 21b32b9de5 IDE Performance: skip resolver construction for non-relevant modules
Querying non-existent packages does not trigger module resolver computation
2017-05-16 22:15:07 +03:00
Pavel V. Talanov 77e611b2e7 Minor: refactor PerModulePackageCacheService 2017-05-16 22:15:05 +03:00
Pavel V. Talanov 1c5e7c4726 Make sure java completion doesn't suggest classes from builtIns
Fix an undesirable sideeffect of previous changes
2017-05-16 22:01:05 +03:00
Pavel V. Talanov 798c80ed07 Use wrappers around java.util.* to emulate kotlin.collection.* behaviour
Backend: If kotlin class extends kotlin.collection.List
    write it as it's super interface (light class mode only)
IDE: Provide wrapper classes to java resolve
    that try to emulate backend behaviour

For example if kotlin class implements kotlin.collections.Map,
    we provide a superinterface that has abstract 'getEntries' method
    and 'entrySet' method that is considered default.
In reality all those methods are generated in the class itself.

In IDE supporting this case without hacks is not feasible performance-wise
    since kotlin.collection.* may not be an immediate supertype and we need
    to compute all supertypes just to calculate own methods of the class
2017-05-16 22:01:03 +03:00
Pavel V. Talanov 40561dabed J2K JavaToKotlinClassMap 2017-05-16 22:00:58 +03:00
fitermay e30b9758f4 Introduce action to add missing when branches on sealed class
Made via diagnostics NON_EXHAUSTIVE_WHEN_FOR_SEALED_CLASS
with INFO severity and quick-fix
So #KT-17580 Fixed
2017-05-16 16:43:27 +03:00