Commit Graph

37423 Commits

Author SHA1 Message Date
Alexander Udalov eee8b033a6 JVM IR: minimize usages of jvmPhases outside backend.jvm 2021-09-14 22:29:12 +02:00
Alexander Udalov b4c84aa2a6 JVM IR: move out bridge/collection lowering caches to separate files
Both BridgeLoweringCache and CollectionStubComputer are not tecnically
part of the lowerings, so they shouldn't be in the "lower" package.
2021-09-14 22:29:12 +02:00
Alexander Udalov 08cc789123 JVM IR: move out common utilities from lowerings
The main idea is to remove dependencies on lowerings from other
backend.jvm code (mainly codegen), with the hope of extracting lowerings
and codegen to separate unrelated modules in the future.

To achieve this, code which is used both in lowerings and codegen is
moved to the "common" code, mainly JvmIrUtils/JvmIrTypeUtils.
2021-09-14 22:29:12 +02:00
Alexander Udalov 36a3db44da JVM IR: slightly cleanup and split IrUtils.kt
- Move IrType-specific utilities to separate JvmIrTypeUtils.kt
- Extract JvmIrBuilder to a separate file
- Rename IrUtils.kt to JvmIrUtils.kt to be able to tell it apart from
  numerous other IR utils files
2021-09-14 22:29:12 +02:00
Alexander Udalov e857966edb JVM: remove support for disabling NoConstantValueAttributeForNonConstVals
This feature is enabled by default since 1.4, which is the earliest
language version supported by Kotlin at this moment.
2021-09-14 22:29:12 +02:00
pyos d07070e184 JVM_IR: avoid redundant accessors in private inline funs
Their call sites are all in the same file, so we can check whether the
declarations used in the inline function are accessible from all the
places where it will be inlined.

 #KT-48736 Fixed
2021-09-14 22:17:10 +02:00
Denis.Zharkov ef684c0dff FIR: Improve error reporting for EXPRESSION_EXPECTED_PACKAGE_FOUND 2021-09-14 19:13:47 +03:00
Denis.Zharkov 8f6ec42304 FIR: Drop unnecessary withIncrementedQualifierPartIndex 2021-09-14 19:13:46 +03:00
Denis.Zharkov 0923526162 FIR: Minor. Drop unused getWholeQualifierSourceIfPossible 2021-09-14 19:13:45 +03:00
Denis.Zharkov 8ff25825dd Minor. Extract obtainValueParametersFromResolvedLambdaAtom 2021-09-14 19:13:44 +03:00
Denis.Zharkov e3122d0c90 Minor. Extract transformAnonymousFunctionWithExpectedType 2021-09-14 19:13:42 +03:00
Denis.Zharkov 226893c648 FIR: Adjust test data to correct from FE 1.0 point-of-view behavior
^KT-38031 Related
2021-09-14 19:13:41 +03:00
Denis.Zharkov 6e6be7c953 FIR: Adjust test data
Currently, we've got two places where NO_COMPANION_OBJECT is reported
and they perform it kind of differently
2021-09-14 19:13:40 +03:00
Denis.Zharkov 9ca96ebbd2 FIR: Add FirVisibilityQualifierChecker 2021-09-14 19:13:39 +03:00
Denis.Zharkov 9575d4d242 FIR: Rework qualifier-in-expression resolution
Get rid of stateful FirQualifiedNameResolver
Resolve a.b.c-like calls step-by-step using just recursion

^KT-48363 Fixed
2021-09-14 19:13:38 +03:00
Denis.Zharkov 69f7c2278d FIR: Simplify resolution for qualifier receiver
Seems there's no need anymore in ClassifierPrioritized group
2021-09-14 19:13:36 +03:00
pyos 9fa3e2eb13 FIR: always load parents of nested classes first 2021-09-14 19:00:48 +03:00
pyos 032cf5a892 FIR: JavaSymbolProviderWrapper -> JavaSymbolProvider 2021-09-14 19:00:47 +03:00
pyos 30c8fa89f6 FIR: rename JavaSymbolProvider to JavaClassConverter 2021-09-14 19:00:46 +03:00
pyos 3a80cb1808 FIR: hide construction of JavaSymbolProvider 2021-09-14 19:00:45 +03:00
pyos 8ff79e002e FIR: load parents of Java inner classes first, as before 2021-09-14 19:00:44 +03:00
pyos cac0cf6a50 FIR: join KotlinDeserializedJvmSymbolsProvider and JavaSymbolProvider
This allows reusing class finder results.
2021-09-14 19:00:43 +03:00
Nikolay Lunyak 0181c80ddb [FIX] Add some more tests 2021-09-14 18:42:27 +03:00
Nikolay Lunyak d7e00a5907 [FIX] Fix error types 2021-09-14 18:42:26 +03:00
nataliya.valtman 130fd8311e KT-48620: add readable output size metric into build scan 2021-09-14 17:56:11 +03:00
Ilya Kirillov a8d321db63 FIR IDE: do not use FE1.0 compiler jars in frontend-independent-modules 2021-09-14 14:45:43 +02:00
Hung Nguyen a48bf63630 KT-45777: Compute classpath changes for incremental Kotlin compile
Test: Updated unit tests + incremental compilation integration tests
2021-09-14 12:10:38 +03:00
Roman Golyshev 57608d7eeb Use correct elementType in KotlinBackingFieldStubImpl constructor 2021-09-13 21:58:00 +03:00
Ivan Kochurkin a816bd9a33 [FIR] Add JVM_INLINE_WITHOUT_VALUE_CLASS, VALUE_CLASS_WITHOUT_JVM_INLINE_ANNOTATION 2021-09-13 20:49:00 +03:00
Ivan Kochurkin 7e7066d75e [FIR] Add FUNCTION_DELEGATE_MEMBER_NAME_CLASH 2021-09-13 20:48:59 +03:00
Ivan Kochurkin a5caa14255 [FIR] Add SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL 2021-09-13 20:48:59 +03:00
Ivan Kochurkin 5760a94ab4 [FIR] Add CONCURRENT_HASH_MAP_CONTAINS_OPERATOR 2021-09-13 20:48:58 +03:00
Ivan Kochurkin 0ffd6ccb34 [FIR] Add SUSPENSION_POINT_INSIDE_CRITICAL_SECTION 2021-09-13 20:48:57 +03:00
Ivan Kochurkin e97933a9e5 [FIR] Add POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION 2021-09-13 20:48:55 +03:00
Ivan Kochurkin dd46c36b24 [FIR] Add SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC 2021-09-13 20:48:54 +03:00
Ivan Kochurkin 07edb15138 [FIR] Expand typealias for correct approximation of types (particularly Int and Long) 2021-09-13 14:28:26 +00:00
Dmitriy Novozhilov d390f881c8 [FE 1.0] Record USED_AS_EXPRESSION for unreachable CFG nodes
^KT-48708 Fixed
2021-09-13 16:22:50 +03:00
Dmitry Gridin 72752473bf [light classes] KtLightClassForSourceDeclaration: update equals and hashCode to fix PluginException
^KTIJ-19042 Fixed
^EA-357501 Fixed
2021-09-13 11:43:22 +00:00
Dmitriy Novozhilov feeeb16377 [FIR] Fix consistency tests 2021-09-13 13:53:15 +03:00
Dmitriy Novozhilov 765b389875 [FIR] Mute failing test due to KT-48675 2021-09-13 13:53:14 +03:00
Dmitriy Novozhilov d1db9b17e5 [FIR] Add workaround for KT-48675 2021-09-13 13:53:13 +03:00
Dmitriy Novozhilov 5769d42248 [FIR] Fix all usages of annotations due to new FirAnnotation hierarchy 2021-09-13 13:53:12 +03:00
Dmitriy Novozhilov 2e7564a21e [FIR] Properly create FirAnnotation and FirAnnotationCall in all places 2021-09-13 13:53:12 +03:00
Dmitriy Novozhilov 31a7d8d5a4 [FIR] Split FirAnnotation into FirAnnotation and FirAnnotationCall
FirAnnotation represents simple annotation placed on some element.
  This element contains only annotation type ref and simple argument
  mapping

FirAnnotationCall is a element for call of annotation (`@Ann(args)`)
  which was written in user code. FirAnnotationCall is a resolvable call
2021-09-13 13:53:11 +03:00
Dmitriy Novozhilov 52e339593e [FIR] Infer name of FIR elements in generator from property name 2021-09-13 13:53:10 +03:00
Dmitriy Novozhilov 4b662a42a1 [FIR] Rename FirAnnotationCall to FirAnnotation 2021-09-13 13:53:09 +03:00
Dmitriy Novozhilov a7353d5a02 [FIR] Remove redundant deprecated annotation 2021-09-13 13:53:08 +03:00
Dmitriy Novozhilov 728df8127c [FIR] Unify FirResolvedArgumentList with FirPartiallyResolvedArgumentList
Effectively FirPartiallyResolvedArgumentList was resolved argument list
  for error calls, so not all arguments had proper value parameter. So
  FirPartiallyResolvedArgumentList now inherits FirResolvedArgumentList
  and renamed to FirResolvedArgumentListForErrorCall
2021-09-13 13:53:08 +03:00
Dmitriy Novozhilov 8904d6fde9 [FIR] Remove BodyBuildingMode.STUBS from RawFirBuilder 2021-09-13 13:53:07 +03:00
Dmitriy Novozhilov 116a1c1e46 [FIR] Remove stubMode flag from RawFirBuilder and LightTree2Fir converter 2021-09-13 13:53:05 +03:00