5034 Commits

Author SHA1 Message Date
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