Commit Graph

104214 Commits

Author SHA1 Message Date
Brian Norman 3590f0aa03 [FIR] Check type alias visibility after constructor visibility
#KT-61576 Fixed
2023-08-31 12:01:30 +00:00
Evgeniy.Zhelenskiy 6ede1bcf85 [IR] Reduce unnecessary allocations 2023-08-31 10:43:30 +00:00
Kirill Rakhman 0121686a7f [RAW FIR] Use KtFakeSourceElementKind.WrappedDelegate in LT 2023-08-31 10:19:33 +00:00
Kirill Rakhman 21f8ba1706 [FIR] Don't report DEPRECATION on self-access in delegated property
#KT-60682
2023-08-31 10:19:33 +00:00
Kirill Rakhman 411210b520 [RAW FIR] Use range as source of desugared loop-related statements 2023-08-31 10:19:33 +00:00
Kirill Rakhman 61259ef34b [FIR] Report missing DEPRECATION on fake sources
#KT-60682
2023-08-31 10:19:33 +00:00
Kirill Rakhman 4e041494be [FIR] Report DEPRECATION when Java declaration is deprecated in javadoc
#KT-60682
2023-08-31 10:19:33 +00:00
Dmitrii Gridin 99307f97e9 [Low Level FIR] introduce service for incoming psi modifications processing
This service encapsulates all logic and simplifies future evolution

^KT-60610
2023-08-31 10:06:43 +00:00
Dmitriy Novozhilov 6169834bb3 [FIR] Make FirResolvedDeclarationStatus.modality non nullable
^KT-58764 Fixed
2023-08-31 09:38:44 +00:00
Dmitrii Krasnov 8299fffae2 Added possibility to create a custom usable KotlinCompile task without using internals ownModuleName and moduleName
#KT-60541 Ready for Review
2023-08-31 09:37:21 +00:00
Ilya Kirillov 103ebb0ab4 [kotlin] fix AssertionError: Alien file! in IJ test
We should not cache `VirtualFile` per-application
2023-08-31 08:55:17 +00:00
Roman Golyshev 1766c68e9c [FIR][AA] Rely more on isInBestCandidates flag KtFirReferenceShortener
After the KT-61568 has been fixed, `isInBestCandidates`
correctly works in more cases, and can be more
reliably used in `KtFirReferenceShortener`

^KTIJ-26808 Fixed
^KTIJ-26840 Fixed
2023-08-31 08:45:34 +00:00
Kirill Rakhman ac102dedac [IR Actualizer] Fix fake-override generation in actual A -> common B -> actual C hierarchy
...  where C defines a member x and A overrides the member x

#KT-61166 Fixed
2023-08-31 07:52:02 +00:00
Kirill Rakhman 293474ee50 [FIR2IR] Remove unused return value of processOverriddenPropertySymbols 2023-08-31 07:52:01 +00:00
Abduqodiri Qurbonzoda 64fd4ac510 Native Enum.hashCode() is not final #KT-61507
Merge-request: KT-MR-11937
Merged-by: Abduqodiri Qurbonzoda <abduqodiri.qurbonzoda@jetbrains.com>
2023-08-30 21:34:46 +00:00
Alexander Shabalin bd797ed503 [K/N] Run stdlib tests only in normal mode ^KT-61259 2023-08-30 17:34:34 +00:00
Alexander Shabalin 1fa0ef6f56 [K/N] Refactor allocator modules ^KT-60928
- Move std_alloc, opt_alloc and custom_alloc into alloc/std,
  alloc/mimalloc and alloc/custom to mirror convention of gc,
  gcScheduler modules.
- Add alloc/common with common allocator API
- Add alloc/legacy with common implementation details of alloc/std and
  alloc/mimalloc. alloc/custom does not depend on alloc/legacy.
- Removes experimental_memory_manager_custom as it's now unused
- Additionally, renames experimental_memory_manager module into mm
2023-08-30 17:07:21 +00:00
Yahor Berdnikau c6893de9bb [Gradle] Update Duckduckgo build regression benchmark
Compare against Kotlin 1.9.10 release.

^KT-61190 Fixed
2023-08-30 16:06:50 +00:00
Yahor Berdnikau e5a3139d62 [repo] Update jgit to the latest version
^KT-61190 In Progress
2023-08-30 16:06:50 +00:00
Yahor Berdnikau 66bc6ea8eb [Gradle] Update Graphql build regression benchmark
Compare against Kotlin 1.9.10 release.

^KT-61190 In Progress
2023-08-30 16:06:49 +00:00
Yahor Berdnikau 85284e00c7 [Gradle] Update KVision build regression benchmark
Compare against Kotlin 1.9.10 release.

^KT-61190 In Progress
2023-08-30 16:06:49 +00:00
Ivan Kochurkin c8c25d8b98 [FIR] Fix resolving of overload function with expect and common candidates
^KT-58896 Fixed
2023-08-30 15:58:59 +00:00
Alexander Udalov dc2deea04c JVM: remove unnecessary check in StrictBasicValue.equals
Types are already checked for equality several lines below.
2023-08-30 15:35:43 +00:00
Alexander Udalov 12bbdebed2 JVM IR: support value classes only when feature is enabled
Remove NeedsToVisit because it doesn't really help with performance, and
it significantly increases code complexity.
2023-08-30 15:35:43 +00:00
Alexander Udalov 2dee47a8c1 JVM IR: simplify JvmValueClassAbstractLowering.visitReturn
Change the existing IrReturn object instead of returning a new one.
2023-08-30 15:35:43 +00:00
Alexander Udalov d1f884bad9 JVM IR: micro-optimization in IrType.erasedUpperBound
Avoid `is` on interfaces, use classes instead.
2023-08-30 15:35:43 +00:00
Alexander Udalov 35d498847e JVM IR: reorder some resolveFakeOverride calls 2023-08-30 15:35:43 +00:00
Alexander Udalov 29fab6c3eb IR: optimize IrDeclarationWithName.fqNameWhenAvailable
Do not construct lots of FqName objects, since doing so takes ~1% of JVM
backend time.
2023-08-30 15:35:43 +00:00
Alexander Udalov f1886f8219 JVM IR: optimize comparison with FQ name of kotlin.Result 2023-08-30 15:35:43 +00:00
Alexander Udalov 70f48db226 JVM IR: optimize IrIntrinsicMethods.getIntrinsic
Create a nested hash map with names as keys that are easier to compute
than the whole `Key`. It helps to substantially reduce the number of
computed FqName instances, since intrinsics are queried on generation of
each call.

Also put intrinsic query a bit lower in SyntheticAccessorLowering, after
operations which are easier to compute.
2023-08-30 15:35:43 +00:00
Aleksei.Cherepanov 498d2c0bd7 [Workspace model] Add targetPlatform serialization for Kotlin Facet Settings
This commit is needed for adding targetPlatform serialization for Kotlin Facet Settings Workspace Model on IJ side

Merge-request: KT-MR-11953
Merged-by: Aleksei Cherepanov <aleksei.cherepanov@jetbrains.com>
2023-08-30 15:35:12 +00:00
Alexander.Likhachev dafec3c0e5 Always use latest kotlin-build-env image for Space dev environments
#KTI-1362 Fixed
2023-08-30 15:24:12 +00:00
Dmitriy Novozhilov 332eca2d55 [Test] Update testdata of fixed test
I don't really know which exact commit fixed this test, but there was
  a problem with return types of delegated members. Before my changes
  delegated `override fun foo(x: Int)` in `actual class E` had error
  return type and now it has correct type `Int`
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov b53ccf7fac [FIR2IR] Drop Fir2IrSymbols in favor of IrPublicSymbol...Impl
Effectively, those two symbol hierarchies have the same semantics, so
  there is no sense to keep them both
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 1776b84945 [FIR2IR] Remove unused checks of type parameter index 2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 0d942d2564 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 17
Move creation of Fir2IrLazyConstructor into Fir2IrLazyDeclarationsGenerator
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov b9fd78d906 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 16
Group methods of Fir2IrClassifierStorage and Fir2IrClassifiersGenerator
  by types of declarations they are working with.

This commit contains nothing but just moving code in borders of the same file
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 40ae5a8e33 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 15
Always require containing IrClass for enum entries
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov eb9c732527 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 14
Decompose creation, processing, and caching local classes between classifier
  storage and classifiers generator
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 41fa276022 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 13
Move almost all caching of created classifiers from Fir2IrClassifiersGenerator
  back to Fir2IrClassifierStorage
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 26211a0277 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 12
This commit just moves methods which create IR callable declarations
  from Fir2IrClassifierStorage to newly created Fir2IrClassifiersGenerator

Code in generators contains some errors (mostly because it refers to the
  logic of caching created declaration), and those errors will be fixed
  in the following commits
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov e2e8a9eb8f [FIR2IR] Extract logic of IR declarations generation into separate component. Part 11
Move creation of IrScript into Fir2IrCallableDeclarationsGenerator
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 771b44fd02 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 11
Group methods of Fir2IrDeclarationStorage and Fir2IrCallableDeclarationsGenerator
  by types of declarations they are working with.

This commit contains nothing but just moving code in borders of the same file
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 5163e578aa [FIR2IR] Extract logic of IR declarations generation into separate component. Part 10
Restore old behavior of forced creation of fake-overrides
This behavior semantically is not fully correct, because it ignores existed
  f/o in storages and overwrites them, but replacing `createIr...` with
  `getOrCreate...` leads to problems with f/o in actual classes

^KT-61513
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov c215df8b93 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 9
Move caching of created lazy declarations back to Fir2IrDeclarationStorage
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 6e2123c2b6 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 8
Move caching of created IrParameter, IrVariable and IrLocalDelegatedProperty
  back to Fir2IrDeclarationStorage
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov 8d9fa0fdde [FIR2IR] Extract logic of IR declarations generation into separate component. Part 7
Move caching of created IrField back to Fir2IrDeclarationStorage
2023-08-30 14:51:45 +00:00
Dmitriy Novozhilov b3efad5428 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 6
Move caching of created IrProperty back to Fir2IrDeclarationStorage
2023-08-30 14:51:44 +00:00
Dmitriy Novozhilov e83dc35ba5 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 5
Move caching of created IrConstructor back to Fir2IrDeclarationStorage

^KT-61513
2023-08-30 14:51:44 +00:00
Dmitriy Novozhilov 6621b16e77 [FIR2IR] Extract logic of IR declarations generation into separate component. Part 4
Move caching of created IrAnonymousInitializer back to Fir2IrDeclarationStorage
Fix all call-sites
2023-08-30 14:51:44 +00:00