Mikhail Glukhikh
31a46866b6
Extract separate FirPropertyAccessorRenderer
2022-07-14 09:38:41 +00:00
Mikhail Glukhikh
76d5d3a2ec
Extract separate FirModifierRenderer
2022-07-14 09:38:39 +00:00
Mikhail Glukhikh
3fe35e6997
Extract separate FirCallArgumentsRenderer
2022-07-14 09:38:39 +00:00
Mikhail Glukhikh
abfa33b200
Get rid of mode argument in FirElement.render(withType)
2022-07-14 09:38:38 +00:00
Mikhail Glukhikh
7c27e6f843
FirRenderer: partially get rid of RenderMode
2022-07-14 09:38:37 +00:00
Mikhail Glukhikh
089044e5b0
FirRenderer: get rid of direct Visitor usages
2022-07-14 09:38:34 +00:00
Mikhail Glukhikh
a82baf87cb
FIR renderer: extract separate ConeTypeRenderer
2022-07-14 09:38:33 +00:00
Mikhail Glukhikh
38d6f3d548
Move FirRenderer to separate package
2022-07-14 09:38:31 +00:00
Mikhail Glukhikh
475e40b3e4
K1: report warning for inline virtual member in enum #KT-53148 Fixed
...
Related to KT-34372
2022-07-14 07:59:33 +00:00
Ilya Kirillov
bd6be11adf
[LL API] allow on-air analysis of non-physical files for intentions preview
2022-07-13 12:44:04 +02:00
Ilya Kirillov
95744062c1
[Symbol LC] add parents for the local classes
2022-07-13 01:47:36 +02:00
Jaebaek Seo
8d5c6297c7
Add ReadWriteAccessCheckerFirImpl class
...
ReadWriteAccessCheckerFirImpl class is ReadWriteAccessChecker
implementation for FIR. We register it for both stand-alone and test
analsys. It is used by KotlinFirReferenceContributor.kt to check the
synthetic Java property.
2022-07-12 16:47:40 +02:00
Jaebaek Seo
7a3e90f907
FIR find usage: separate FirSimpleNameReference objects for read/write
...
FirSimpleNameReference class handles the references to the Java
synthetic property. It causes an issue in `processReference(..)` method
of `MethodTextOccurrenceProcessor` when the property is used by
read/write. Since read/write has two results of the reference resolution
i.e., getter for read and setter for write, `ref.solve()` in the method
returns `null` because it uses `resolve()` method in
PsiPolyVariantReferenceBase that returns null when it has multiple
results. This commit separates FirSimpleNameReference objects for
read/write to fix the issue.
2022-07-12 16:46:01 +02:00
pyos
5a2ec4a0d5
FIR CFG: merge data flow if called-in-place lambda may not be called
2022-07-11 18:11:30 +03:00
pyos
06c7572ee5
FIR CFG: process called-in-place lambdas as loops
2022-07-11 18:11:30 +03:00
Victor Petukhov
fb21937eb1
[FE 1.0] Report INVISIBLE_MEMBER on all qualified expressions including safe call ones
...
^KT-47621 Fixed
2022-07-11 12:44:06 +00:00
Ilya Kirillov
c46c723a1b
[LL FIR] invalidate ValueWithPostCompute cache state on PCE
2022-07-10 23:20:33 +02:00
Ilya Kirillov
795b6656db
[LL FIR] fix possible race in cached value reading in ValueWithPostCompute
2022-07-10 23:17:22 +02:00
Jaebaek Seo
ef482bb126
FIR find usage: correctly set extendsList of FirLightInterfaceClassSymbol
...
The existing code does not set the list of bases that
FirLightInterfaceClassSymbol extends for "extendsList". It collects only
the set of interfaces for "extendsList" of FirLightInterfaceClassSymbol.
However, interfaces can "extend" other classes and/or interfaces, but
they cannot "implement" other interfaces. Therefore, we have to includes
all interfaces and classes that the child interface extends in
the "extendsList". Additionally, this commit adds `private fun
PsiClass.hasSuper(..): Boolean` to FirLightClassBase that returns
whether one of recursive super classes of the PsiClass is `baseClass`
or not. This commit lets `isInheritor()` method use
`PsiClass.hasSuper()`.
2022-07-08 10:36:55 +02:00
Bart van Helvert
21f65b2fe3
KTIJ-22157 Make KtCallError attachment name static
2022-07-07 16:36:04 +00:00
Bart van Helvert
0c50072436
KTIJ-22157 Don't leak user code in unresolved call exception
2022-07-07 16:36:03 +00:00
Ilya Kirillov
3e6de190e7
[Analysis API] update testdata after adding isNoinline/isCrossinline to the KtValueParameterSymbol
2022-07-05 10:34:29 +02:00
Ilya Kirillov
184478858c
[Analysis API] add isNoinline/isCrossinline to the KtValueParameterSymbol
2022-07-05 10:34:29 +02:00
Ilya Kirillov
6a145b52aa
[Analysis API] update testdata after adding context receivers
2022-07-05 10:34:28 +02:00
Ilya Kirillov
8f89f1b368
[Analysis API] add info about context receivers to the Analysis API
2022-07-05 10:34:28 +02:00
Mikhail Glukhikh
730a5d1a88
FIR: introduce Java vs Kotlin class conflicts checker #KT-44441 Fixed
2022-07-04 13:28:58 +00:00
Victor Petukhov
3ed87c29c7
[FE 1.0] Substituted possible fixed type variables after completion in accordance with @OverloadResolutionByLambdaReturnType
...
^KT-48031 Fixed
2022-07-04 12:05:57 +00:00
Mikhail Glukhikh
3223d3c3e9
Add test with false/true positives for KT-24643
2022-07-03 19:10:01 +00:00
Ilya Kirillov
445c0deb61
[Analysis] fix race in registering services in test
2022-07-01 21:08:18 +02:00
Ilya Kirillov
21fcb9ccc0
[Analysis API] add checks that KtLifetimeOwners are not leaked to other analyse scope
2022-07-01 21:08:18 +02:00
Ilya Kirillov
aca8643262
[Symbol LC] rename analyseForLightClasses -> analyzeForLightClasses
2022-07-01 21:08:18 +02:00
Ilya Kirillov
00b893444c
[Analysis API] remove unneeded analyzeWithSymbolAsContext
2022-07-01 21:08:18 +02:00
Ilya Kirillov
3dffe828b1
[Symbol LC] get rid of usage of analyzeWithSymbolAsContext for LC
2022-07-01 21:08:18 +02:00
Ilya Kirillov
77758d1552
[Analysis] do not reregister services in AbstractStubBuilderTest
2022-07-01 11:33:21 +02:00
Ilya Kirillov
271ecfbd68
[Analysis] Try to fix randomly failing tests because of unregistered FileAttributeService
...
It should be unregistered with the application by ApplicationEnvironmentDisposer
which is registered in :compiler:tests-common-new
2022-07-01 11:33:21 +02:00
Roman Golyshev
79ba790b38
[FIR IDE] Add support for new types of predicates for compiler plugins
2022-07-01 07:42:54 +00:00
Mikhail Glukhikh
2b235e1188
FE10 Analysis API: use compact renderer for flexible types even in debug
2022-06-29 16:50:06 +00:00
Mikhail Glukhikh
38f4a35be2
FIR: introduce flexible types pretty rendering for no arguments case
...
#KT-52020 Fixed
2022-06-29 16:50:05 +00:00
Mikhail Glukhikh
31ec10142b
FirRenderer: add renderAllModifiers and renderDetailedTypeReferences
...
Related to KT-52020
2022-06-29 16:50:04 +00:00
Dmitriy Novozhilov
1a8496757e
[Compiler] Mark all entrypoints to compiler API as experimental
2022-06-29 12:00:01 +00:00
Dmitriy Novozhilov
441f3d202a
[LL API] Introduce converters from plugin defined diagnostics to KtDiagnostics
2022-06-29 12:00:00 +00:00
Dmitriy Novozhilov
0c6a9d3eac
[LL API] Provide proper way for automatic registration of compiler plugins
2022-06-29 11:59:59 +00:00
Dmitriy Novozhilov
8b42638afa
[Plugins] Introduce new API for registering compiler plugins
...
Original `ComponentRegistrar` exposes Project to its registration method,
so plugins should manually register extensions to it. To prepare for
possible unbound compiler from Project API in future new `K2ComponentRegistrar`
introduced which provides registration method without Project at all
2022-06-29 11:59:58 +00:00
Ilya Chernikov
bb996c1b27
Switch kotlin version to 1.8
...
with appropriate fixes in testdata, tests and other
places.
2022-06-29 10:20:30 +02:00
Ilmir Usmanov
09c9641e23
FE: Use safe call when searching for suspend modifier
...
The modifier does not exist, when the parameter type is typealias.
#KT-35187 Fixed
2022-06-29 06:12:44 +02:00
Dmitry Gridin
dd824aacb6
Revert "Revert "[light classes] drop old light classes and backend: iteration #2 ""
...
This reverts commit 43b4df74bc .
2022-06-28 17:57:30 +02:00
Dmitry Gridin
f10c5c28a5
Revert "Revert "[light classes] drop old light classes and backend: iteration #1 ""
...
This reverts commit 57de064251 .
2022-06-28 17:57:29 +02:00
Pavel Mikhailovskii
c3c09aa95a
KT-4107 Data objects
2022-06-28 16:58:20 +02:00
Dmitry Gridin
57de064251
Revert "[light classes] drop old light classes and backend: iteration #1 "
...
This reverts commit 3cb2df9360 .
2022-06-28 13:52:11 +02:00
Dmitry Gridin
43b4df74bc
Revert "[light classes] drop old light classes and backend: iteration #2 "
...
This reverts commit 97ce502cbe .
2022-06-28 13:52:10 +02:00