Commit Graph

82173 Commits

Author SHA1 Message Date
Ilya Kirillov 47a596c214 FIR IDE: add return target to tail in keyword completion
The same do FE10 completion and we need it to have consistent tests
2021-05-12 21:40:19 +03:00
Ilya Kirillov f8fc43f1e9 FIR IDE: add AbstractKeywordCompletionTest 2021-05-12 21:40:18 +03:00
Ilya Kirillov 96117fc1eb FIR IDE: cleanup FirPositionCompletionContextDetector.detect 2021-05-12 21:40:16 +03:00
Ilya Kirillov 597d64b81d FIR IDE: do not ignore passing tests from AbstractFirKeywordCompletionHandlerTest 2021-05-12 21:40:15 +03:00
Ilya Kirillov f18bcdb88c FIR IDE: add AbstractFirKeywordCompletionHandlerTest 2021-05-12 21:40:14 +03:00
Ilya Kirillov e5202f44d7 Refactor keyword completion handlers
- Separate completion keyword handlers stuff into files
- Introduce CompletionKeywordHandlerProvider as a common way to provide handlers
- Move CompletionKeywordHandler factory out of companion object
2021-05-12 21:40:12 +03:00
Ilya Kirillov 8983bde73e FIR IDE: implement override completion 2021-05-12 21:40:11 +03:00
Ilya Kirillov ae212f36f5 FIR IDE: move addElementToCompletion to FirCompletionContributorBase 2021-05-12 21:40:10 +03:00
Ilya Kirillov e624f2c136 FIR IDE: do not pass resultSet in KotlinWithNameReferenceCompletionProvider as it is already available 2021-05-12 21:40:09 +03:00
Ilya Kirillov 49aba39ae8 Make OverridesCompletionLookupElementDecorator available for FIR IDE 2021-05-12 21:40:07 +03:00
Ilya Kirillov 8f399652d7 FIR IDE: add expressions to return keyword completion
Also, adds return targets for return with labels while FE1.0 plugin don't
2021-05-12 21:40:06 +03:00
Ilya Kirillov 8cfa85df6b FIR IDE: make FirKeywordCompletion to be a completion contributor 2021-05-12 21:40:04 +03:00
Ilya Kirillov ca1fd185dc FIR IDE: introduce base class for completion provider 2021-05-12 21:40:03 +03:00
Ilya Kirillov 81c6f38f79 FIR IDE: move context creation out of KotlinFirCompletionContributor 2021-05-12 21:40:02 +03:00
Ilya Kirillov 8eff865277 FIR IDE: encapsulate basic completion parameters into class 2021-05-12 21:40:01 +03:00
Ilya Kirillov a08c267c37 FIR IDE: mute a few completion tests as they now fails because of unexpected keywords 2021-05-12 21:39:59 +03:00
Ilya Kirillov 98becc9a50 FIR IDE: remove FIR_IGNORE from passing completion test after implementing basic keyword completion 2021-05-12 21:39:58 +03:00
Ilya Kirillov 36068d0b94 FIR IDE: reuse keyword completion handlers which do not require resovle 2021-05-12 21:39:57 +03:00
Ilya Kirillov 1f93eb0841 FIR IDE: add basic keyword completion 2021-05-12 21:39:56 +03:00
Ilya Kirillov 62fe3930ff Move keyword completion stuff to frontend-independent module 2021-05-12 21:39:54 +03:00
Roman Golyshev d7a91cb05e Remove IGNORE_FIR directive from already green tests 2021-05-12 16:28:31 +00:00
Roman Golyshev 4adb291a12 Mute failing AutoImportQuickFix tests 2021-05-12 16:28:30 +00:00
Roman Golyshev 03a1439cc0 Make IgnoreTests fail correctly when directive is outdated
`Outdated` means green test with `IGNORE_FIR` directive, or
red test with `FIR_COMPARISON` directive

Also, invoke directive insertion only when it is appropriate
2021-05-12 16:28:29 +00:00
Roman Golyshev 22db894076 FIR IDE: Add Add Import quickfix
This quickfix can import unresolved types and callables

It currently does not support Java types and is not as advanced as in
the old plugin

Also, enable tests that now pass
2021-05-12 16:28:28 +00:00
Roman Golyshev 3ad9e4cb5c Use Import instead of action FQN
This way test data can be used both in the old plugin and in the
FIR plugin
2021-05-12 16:28:27 +00:00
Roman Golyshev eadd7ac034 Generate multi-file quickfix tests for FIR plugin
Currently generate only for `Import` quickfix
2021-05-12 16:28:27 +00:00
Roman Golyshev 24642a7c9f Add KtTypeElement.unwrapNullability() extension function
Replace similar functions with its usage
2021-05-12 16:28:26 +00:00
Roman Golyshev cc41592969 Add possibility to compute additional files for IgnoreTests
It is more flexible then just passing additional prefixes, since in some
cases test data have some weird naming conventions
2021-05-12 16:28:25 +00:00
Roman Golyshev e50d643213 Add possibility to use ModuleLibrariesSearchScope in other modules
The type is made private to avoid direct usage of it
2021-05-12 16:28:24 +00:00
Ivan Kochurkin 598501aaf0 [FIR] Improve locations for DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED, DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL, DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE and other diagnostics, refactor 2021-05-12 18:42:44 +03:00
Ivan Kochurkin 52c32d3d85 [FIR] Implement DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE, fix tests 2021-05-12 18:42:43 +03:00
Ivan Kochurkin 177394f6ef [FIR] Implement DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL, fix tests 2021-05-12 18:42:42 +03:00
Ivan Kochurkin 77c137df22 [FIR] Add DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED diagnostics, fix tests 2021-05-12 18:42:41 +03:00
Ivan Kochurkin 3191e0b925 [FIR] Implement DEPRECATED_SINCE_KOTLIN_WITHOUT_ARGUMENTS diagnostics, fix tests, merge and refactor annotation checkers 2021-05-12 18:42:40 +03:00
Ivan Kochurkin dc99a673a5 [FIR] Implement DEPRECATED_SINCE_KOTLIN_WITH_UNORDERED_VERSIONS diagnostics, fix tests 2021-05-12 18:42:38 +03:00
Ivan Kochurkin 5c086e2321 [FIR] Implement NEWER_VERSION_IN_SINCE_KOTLIN diagnostics, fix tests 2021-05-12 18:42:37 +03:00
Ivan Kochurkin 1be02e3ac4 [FIR] Implement ILLEGAL_KOTLIN_VERSION_STRING_VALUE diagnostics, fix tests 2021-05-12 18:42:36 +03:00
Jinseong Jeon cb0b80253c FIR/UAST: make a fat jar with the base module 2021-05-12 17:36:35 +02:00
Ilya Muradyan bab5d16001 [REPL] Stop old classpath calculation on the base classloader
The mechanism of the recursive classpath checking is intended
 for the "inner" scripting/REPL classloaders and should not touch
 anything beyond.
2021-05-12 18:30:43 +03:00
Mikhail Glukhikh 4608ca15eb FIR: don't allow SEALED callable modality anymore 2021-05-12 17:50:29 +03:00
Mikhail Glukhikh 67d1c35f19 FIR: report MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED also on interfaces 2021-05-12 17:50:27 +03:00
pyos 3fc2cc410c JVM_IR: propagate reified type parameter usages from inline lambdas
...to whichever class they are inlined into, not the class they are
declared in (which is not the same if the lambda is crossinline).

 #KT-46584 Fixed
2021-05-12 15:09:35 +03:00
Alexander Udalov e079fb665e JVM IR: fix inheritance from mutable collections of Int
For subclasses of `AbstractMutableList<Int>` which are not inline
classes, the special bridge `remove` had a parameter of type `Int`
(mapped to JVM primitive int) before this fix. The hack in
`MethodSignatureMapper` changed this type to `Int?`, yet the body of the
special bridge still loaded it as non-nullable, which resulted in
incorrect bytecode.

It looks like a part of this hack in `BridgeLowering` was made only for
inline classes which are subclasses of mutable collections. Supposedly
it should be extended to non-inline classes, so that `remove` special
bridge would have consistent IR by the time it reaches codegen.

 #KT-46516 Fixed
2021-05-12 13:58:40 +02:00
Nikolay Krasko f30980806f Read process streams to avoid hanging on Windows in parcelize tests
Could be reproduced with ParcelizeBoxTestGenerated.testKt36658 test.
2021-05-12 12:58:02 +03:00
Nikolay Krasko 818bbbbb83 Don't print to log in successful parcelize tests 2021-05-12 12:58:01 +03:00
Nikolay Krasko b41fdd2705 Leave a clue about muted tests with directive for manual processing 2021-05-12 12:57:59 +03:00
Mads Ager 2c5a4dcb98 [JVM IR] Fix constant folding to use basic types always.
Fixes KT-46540.
2021-05-12 11:57:20 +02:00
Svyatoslav Scherbina ad18d5984b Expand comment for unsupported nested generics when exporting to Swift
Add links to Swift and Kotlin issue trackers.
2021-05-12 09:06:28 +00:00
Elena Lepilkina 18462445b7 [K/N][stdlib] Fixed lookaround regexes (KT-45932) 2021-05-12 09:02:24 +00:00
Ilya Goncharov d7a87a8552 [Gradle, JS] Fixes after rebase 2021-05-12 11:57:14 +03:00