Commit Graph

240 Commits

Author SHA1 Message Date
Igor Yakovlev 9e05c702ab Fix KtDotQualifiedExpressionElementType stub building for complex qualified elements
Fixed #EA212081
2020-02-12 18:59:35 +03:00
Mikhail Zarechenskiy 45bbdaf73f Add base declaration checker for fun interfaces 2020-02-12 10:36:39 +03:00
Dmitry Petrov c5f14a29a4 PSI2IR: Generate adapted callable references
Callable reference is "adapted" if it requires some adaptation to an
expected function type - e.g., when a reference to
```
  fun foo(vararg xs: Int): Int
```
is used where `(Int, Int, Int) -> Int` is expected.

For such callable references we generate the following IR (in
pseudo-Kotlin):
```
  {
    fun foo'(p0: Int, p1: Int, p2: Int): Int {
      return [| foo(p0, p1, p2) |]
    }
    ::foo'
  }
```

where `[| foo(p0, p1, p2) |]` is calling function `foo` with arguments
`p0`, `p1`, and `p2`, as they were mapped by callable reference
resolution.
2020-01-24 11:21:25 +03:00
Dmitry Petrov 89c832b5a0 FE: provide argument mapping info for adapted callable reference 2020-01-24 11:21:25 +03:00
Dmitry Gridin 80194dd536 Trailing comma: cleanup code after review
#KT-34744
2020-01-23 17:36:38 +07:00
Dmitry Gridin ac8a8ecab4 ktPsiUtil: cleanup code 2020-01-23 17:36:38 +07:00
Mikhail Zarechenskiy 8206cadce2 FIC: support fun interfaces in stub builder 2020-01-17 19:36:12 +03:00
Mikhail Zarechenskiy f7ce1c669b FIC: Introduce isFun property for descriptors and proto 2020-01-17 19:35:06 +03:00
Mikhail Zarechenskiy 6655f0fc4c FIC: Increase STUB version because of changes in parser for declarations 2020-01-17 19:35:05 +03:00
Mikhail Zarechenskiy 4aa195e912 FIC: Parse fun keyword in front of interface as a modifier 2020-01-17 19:35:05 +03:00
Dmitry Gridin d013fc2234 Formatter: support trailing comma in when entry
#KT-34744
2020-01-17 21:02:53 +07:00
Dmitry Gridin 4adfaab3ec Formatter: support trailing comma in lambda parameters
#KT-34744
2020-01-17 21:02:53 +07:00
Dmitry Gridin bf92517500 KtVisitorVoid: add missing visitCollectionLiteralExpression 2020-01-17 21:02:52 +07:00
Vladimir Dolzhenko d176a26cdb Improve investigation info in KtDotQualifiedExpression
Relates to #EA-212081
2020-01-14 12:15:04 +01:00
Vladimir Dolzhenko d644c0125a Add more investigation info to getFilesForElements
Relates to #EA-209630
2020-01-14 12:11:32 +01:00
victor.petukhov fc7b836151 Fix isNegated psi method in KtWhenConditionInRange
^KT-34395 Fixed
2020-01-13 15:36:33 +03:00
Dmitriy Novozhilov f083edfac2 Allow contracts on final non-override members since 1.4 2019-12-26 17:43:27 +03:00
Aleksey Kladov 0aa527347d Stubs don't break KtTypeAlias::isTopLevel
`foo ?: bar is baz` is parsed as `(foo ?: bar) is baz`. So, if stub is non-null, this always returns `False`, because `Boolean` is definitely not a `KtFile`. See https://pl.kotl.in/6DtggcImf 

This Kotlin's "most vexing parse" badly needs a diagnostics.
2019-12-26 10:36:40 +03:00
Ilya Chernikov 7bb9f97b11 Allow to separate top-level script declarations and statements with semicolon
This fix allows to write one-liner scripts like "val x = 3; println(x)", which
were previously rejected by the parser.
2019-12-02 16:46:54 +01:00
Vladimir Dolzhenko a6f829f267 Add secondary ctors to incremental analysis
Relates to #KT-35121
2019-11-29 18:30:01 +01:00
victor.petukhov 62d204f4d6 Support trailing comma
^KT-34743 Fixed
2019-11-01 19:40:20 +03:00
Yan Zhulanow fa45122c6b Minor: Fix warnings in KtCodeFragment 2019-10-24 21:33:00 +09:00
Vladimir Dolzhenko 30229da95a Don't render pure error types in OverrideMemberChooserObject
#KT-34379 Fixed
2019-10-21 17:18:23 +02:00
Toshiaki Kameyama d86e87d35e Add quickfix to change object to class
#KT-33586 Fixed
2019-10-02 19:42:30 +07:00
Alex Chmyr b8cce67d2e KT-19355 fix for "Variable expected" error after J2K for increment/decrement of an object field 2019-09-25 10:08:42 +03:00
Natalia Selezneva 8f2aaf62c2 Implement modification stamp for ScriptInitializer
This should influence ResolveElementCache to correctly update caches
because it rely on modifications stamps of the declaration
Before this change file.modificationStamp was used for script initializers in file, so they all became outdated after some change in file
2019-09-12 09:56:42 +03:00
Ilya Kirillov c28515be59 New J2K: use nullable type for unknown for public declarations & prepare for mutability inference
#KT-32518 fixed
2019-09-10 14:09:25 +03:00
Nikolay Krasko 372c6377e8 Remove AstLoadingUtil after removing 182
#KT-33536 Fixed
2019-08-30 12:13:50 +03:00
Nikolay Krasko 4d0fc1dc22 Remove 182 support
#KT-33536 Fixed
2019-08-30 12:13:44 +03:00
Dmitry Gridin 1c98cb763e addRemoveModifier: shouldn't add extra new line
#KT-26635 Fixed
2019-08-27 17:26:09 +07:00
Ilya Chernikov 5208318f34 Fix dependency resolution during gradle project configuration 2019-08-21 20:17:53 +02:00
Yan Zhulanow 8211e73f7e Revert "Evaluator: Do not report parsing error on empty block/expression (KT-11938)"
KT-11938 reopened because of KT-32699.

This reverts commit 6686ed2e
2019-08-07 01:15:33 +09:00
Yan Zhulanow b1f132d750 Debugger: Add stepping tests for function breakpoints 2019-08-07 01:15:27 +09:00
Nikolay Krasko 83e422fc3b Workaround copied kotlin element happened to be outside the KtFile
Can be reproduced after revert with
IdeLightClassTestGenerated$Local.testDollarsInNameLocal test.
2019-08-01 18:21:13 +03:00
Ivan Cilcic 250d86b692 Rename "MyKotlinParser" to "KotlinLightParser" 2019-08-01 15:14:28 +03:00
Ivan Cilcic 8dd72a5cf2 Write lambda expressions and local members parsing (light tree to FIR) 2019-08-01 15:14:24 +03:00
Ivan Cilcic be073ce2e6 Reformat LightTree2Fir class to be able to parse block of code 2019-08-01 15:14:23 +03:00
Ivan Kylchik f0a5408eb6 Modify previously added test 2019-08-01 15:14:16 +03:00
Ilya Kirillov f79b282c60 New J2K: add better support of implicit functional interfaces
#KT-32702 fixed
#KT-19327 fixed
2019-07-25 14:34:34 +03:00
victor.petukhov 6a679d86ab Support non-parenthesized annotations on functional types without receiver
^KT-31734 Fixed
2019-07-17 16:18:15 +03:00
Yan Zhulanow 6686ed2e38 Evaluator: Do not report parsing error on empty block/expression (KT-11938) 2019-07-08 16:25:18 +09:00
Dmitry Gridin 430aed6559 Minor: clean up code 2019-07-05 19:28:02 +07:00
Toshiaki Kameyama 1f89c0f730 "Convert to sealed class" intention: don't suggest when no "class" keyword
#KT-32365 Fixed
2019-07-05 19:28:02 +07:00
Nikolay Krasko 96f0f444ad Remove dependency to IconLoader from compiler 2019-06-25 11:48:58 +03:00
Alexander Podkhalyuzin c853ae49a2 Faster startup avoiding unnecessary class loading 2019-06-18 12:08:04 +02:00
Toshiaki Kameyama fbd992f8c7 Add intentions to convert lazy <--> ordinary property
#KT-23501 Fixed
2019-06-17 01:10:19 +03:00
Toshiaki Kameyama b650c7ab00 Add "Redundant empty initializer block" inspection
^KT-5008 Fixed
2019-06-14 12:27:21 +03:00
Igor Yakovlev fc30e564ba Add support ultra light suspend functions declarations 2019-06-07 17:54:03 +03:00
Dmitry Gridin 8b0b135112 Add new line after modifier list if last child is comment
#KT-30804 Fixed
2019-06-07 12:23:06 +07:00
Denis Zharkov 753a9a1c36 Fix performance regression caused by contracts
Do not obtain all children from KtBlockExpression when you only need
the first one.
It might be crucial for a huge blocks of code
2019-05-31 11:21:15 +03:00