Commit Graph

13003 Commits

Author SHA1 Message Date
Valentin Kipyatkov 309d82308f Optimization 2016-10-04 19:34:56 +03:00
Valentin Kipyatkov 4cc16e42b2 Use partial resolve multiple in operator reference search 2016-10-04 19:34:56 +03:00
Valentin Kipyatkov f181458a58 More efficient way 2016-10-04 19:34:56 +03:00
Valentin Kipyatkov 5f8dca29aa Renames 2016-10-04 19:34:56 +03:00
Valentin Kipyatkov 32a436e893 Refactoring 2016-10-04 19:34:55 +03:00
Valentin Kipyatkov c8260f8d98 Refactoring 2016-10-04 19:34:55 +03:00
Valentin Kipyatkov 7eac49be62 Added comments 2016-10-04 19:34:55 +03:00
Valentin Kipyatkov 73e3180699 More efficient way to check for Kotlin files 2016-10-04 19:34:55 +03:00
Valentin Kipyatkov ee2d4870aa Added comments 2016-10-04 19:34:54 +03:00
Valentin Kipyatkov ccc5d74649 Renames 2016-10-04 19:34:54 +03:00
Valentin Kipyatkov c9bb3607ac More correct quickfix testing - do not include suppression actions not available at caret 2016-10-04 19:32:00 +03:00
Valentin Kipyatkov aec2f19682 Renames 2016-10-04 19:28:54 +03:00
Valentin Kipyatkov 2f5e820afb KT-8664 Hide componentX() functions for data classes from completion
#KT-8664 Fixed
2016-10-04 19:28:53 +03:00
Valentin Kipyatkov 7263d0a056 KT-13728 Implicitly imported functions should be above in completion then non-imported
#KT-13728 Fixed
2016-10-04 19:28:53 +03:00
Valentin Kipyatkov e8f4c65455 KT-13833 javascript: Smart type completion to lower priority of dynamic type
#KT-13833 Fixed
2016-10-04 19:28:53 +03:00
Dmitry Jemerov dbbba45d63 show type of control statements used as expressions 2016-10-04 18:23:32 +02:00
Dmitry Jemerov 02a5856ffd don't show function literals and selectors of qualified expressions in "show expression type" 2016-10-04 18:23:32 +02:00
Dmitry Jemerov 256fd04e95 show detailed smart cast info in "Show expression type" (KT-8803) 2016-10-04 18:23:32 +02:00
Dmitry Jemerov 2141cd268c don't include properties with declared return type and property accessors in "show expression type" popup 2016-10-04 18:23:32 +02:00
Dmitry Jemerov e8fcd194f9 add test for obsolete KT-11601 2016-10-04 18:23:32 +02:00
Dmitry Jemerov 4f1f313b36 don't show type of statements if they are not used as expressions 2016-10-04 18:23:32 +02:00
Dmitry Jemerov 6dccfd3b22 use short names in Show Expression Type
#KT-11310 Fixed
2016-10-04 18:23:32 +02:00
Dmitry Jemerov 4346afa19e test for handling smart casts in "show expression type"
#KT-10588 Fixed
2016-10-04 18:23:32 +02:00
Dmitry Jemerov 032d50bbbf handle multi-declarations in "show expression type" 2016-10-04 18:23:32 +02:00
Dmitry Jemerov fbd2c48fbd don't offer functions with block body and functions with declared return type as candidates for "show expression type" 2016-10-04 18:23:32 +02:00
Dmitry Jemerov 7b644e2c52 support "show expression type" in variable declaration position
#KT-10095 Fixed
2016-10-04 18:23:32 +02:00
Dmitry Jemerov 752a7451e5 get rid of Kotlin specific "Show expression type" action
#KT-13142 Fixed
2016-10-04 18:23:32 +02:00
Dmitry Jemerov 39ab1e985a Java-compatible "Copy Reference" action for Kotlin
#KT-13140 Fixed
2016-10-04 18:23:32 +02:00
Dmitry Jemerov cbb2e5c379 show context when invoking Show Implementations from Find Usages popup
#KT-13475 Fixed
2016-10-04 18:23:32 +02:00
Dmitry Jemerov e462a97c64 show two levels of hierarchy when grouping find usages by file structure
#KT-9019 Fixed
 #KT-10178 Fixed
2016-10-04 18:23:32 +02:00
Denis Zharkov aca05003a9 Set up tests for postfix templates properly
If there are some other completion-like tests before these ones
it may lead to the situation when some value is already written by
`previouslySuggestedExpressions`, so it should be cleared in setUp
2016-10-04 14:16:12 +03:00
Alexander Udalov df680305ba Improve diagnostic message for UNSUPPORTED_FEATURE
Render lowercase words separated by spaces instead of CamelCase in the
diagnostic message
2016-10-04 10:24:43 +03:00
Ilya Gorbunov adf2c5a5ac Classify explicitly imported names higher than default imported in completion. Related to #KT-13447 2016-10-03 20:46:46 +03:00
Dmitry Petrov 06101dba52 KT-13961 REDECLARATION not reported on private-in-file 'foo' vs public 'foo' in different file
Private-in-file declarations conflict with public overload-equivalent declarations
in other files in the same package.

Move functions for grouping possible redeclarations to OverloadResolver
(since they are used only there).

Refactor redeclarations / conflicting overloads reporting.
2016-10-03 11:50:29 +03:00
Denis Zharkov 0120085443 Refine expression kind definition in postfix templates
- Do not treat if without else as values
- Some statements aren't contained in block (see tests)

 #KT-14107 Fixed
 #KT-14110 Fixed
2016-10-03 10:36:48 +03:00
Denis Zharkov 3c24996073 Refine default postfix templates selector
There is new settings checkCanBeUsedAsValue
Also expression filtering are split into to parts:
- getNonFilteredExpressions is trivially goes until it reaches
first block body of some declarations
- all additional filtering is merged into Condition that is passed into
PostfixTemplateExpressionSelectorBase super-call

Notable changes for users:
- do not suggest try for non-top-level expressions
- do not suggest var/par/etc for loops
2016-10-03 10:36:48 +03:00
Denis Zharkov ba2d2a036e Suggest postfix templates on lambda expressions 2016-10-03 10:36:48 +03:00
Denis Zharkov 54d9b4bee6 Do not suggest assignment as a subject in postfix templates
#KT-14077 Fixed
2016-10-03 10:36:48 +03:00
Denis Zharkov 18146fafdf Allow if/when/try postfix templates in expression position
#KT-14078 Fixed
2016-10-03 10:36:48 +03:00
Denis Zharkov bff9dd4ef5 Suggest assert/return postfix templates only for statements
#KT-14079 Fixed
 #KT-14090 Fixed
2016-10-03 10:36:48 +03:00
Denis Zharkov ce128c5d6e Do not suggest operation references in postfix templates
#KT-14087 Fixed
2016-10-03 10:36:48 +03:00
Denis Zharkov d5d18b2ad6 Enhance tests for postfix templates
Prohibit multiple suggested expressions in test mode
2016-10-03 10:36:48 +03:00
Alexander Udalov 45190d9453 Support separate modules in compiler
Unless the compatibility option "-Xsingle-module" is passed, the compiler will
create two modules instead of one now (see TopDownAnalyzerFacadeForJVM): the
main module contains Kotlin and Java sources and binaries from the previous
compilation of the given module chunk, the dependency module contains all other
Kotlin and Java binaries. This fixes some issues where the compiler couldn't
detect that the used symbol was from another module, and did not forbid some
usages which are only possible inside the module (see KT-10001).

The ideal way to deal with modules here would be to exactly recreate the
project structure, for example as it's done in JvmAnalyzerFacade and usages.
This is postponed until later

 #KT-10001 Fixed
 #KT-11840 In Progress
2016-10-02 21:15:47 +03:00
Alexander Udalov 3314725700 Pass GlobalSearchScope instance to JvmPackagePartProvider
Currently behavior is unchanged because the "all project" scope is passed,
however in the future this will allow to implement separate modules in the
compiler properly
2016-10-02 21:03:37 +03:00
Alexander Udalov 97f2051a03 Add debugName to ModuleMapping 2016-10-02 21:03:33 +03:00
Alexander Udalov a5a874f23f Move module creation into TopDownAnalyzerFacadeForJVM#analyzeFilesWithJavaIntegration
The only place where the logic has changed is in AbstractDiagnosticsTest, where
modules are already created and sealed before the analysis. Copy-paste the
container creation logic there (it's almost fine because it's also present in a
bunch of other tests), and simplify it: get rid of incremental compilation and
other stuff irrelevant for diagnostic tests.

This is needed to make analyzeFilesWithJavaIntegration configure the module
properly before sealing it
2016-10-02 21:03:27 +03:00
Alexander Udalov 87fe6c41df Drop ExternalDeclarationsProvider
It was added for Android extensions, but now another mechanism is used there
(PackageFragmentProviderExtension), and there were no other implementations of
ExternalDeclarationsProvider in the project
2016-10-02 21:03:19 +03:00
Valentin Kipyatkov a55273646a Fixed check for convention operator 2016-09-30 21:37:48 +03:00
Valentin Kipyatkov 57faa5a39a Term changes 2016-09-30 21:37:48 +03:00
Valentin Kipyatkov 769943061e Changed String to Name 2016-09-30 21:37:47 +03:00