Commit Graph

82581 Commits

Author SHA1 Message Date
Jinseong Jeon f16f9a13fd FIR/UAST: enforce the existence of BaseKotlinUastResolveProviderService 2021-05-25 13:09:57 +02:00
Jinseong Jeon 240f86b109 FIR UAST: use analyseWithCustomToken in lieu of analyse 2021-05-25 13:09:57 +02:00
Jinseong Jeon 741fdee59e FIR/UAST: commonize UnknownKotlinExpression 2021-05-25 13:09:57 +02:00
Jinseong Jeon 15a4649675 FIR/UAST: commonize UImportStatement 2021-05-25 13:09:57 +02:00
Jinseong Jeon 3c3b5aa4ac FIR/UAST: commonize abstract UElement and UExpression 2021-05-25 13:09:57 +02:00
Jinseong Jeon a54a807dc9 FIR/UAST base: clarify what module we should not depend on
This should be part of commit bbe5cf0a
2021-05-25 13:09:57 +02:00
Denis.Zharkov dac9d7b17a FIR: Mark a pack of tests (53) as FIR_IDENTICAL 2021-05-25 13:28:29 +03:00
Denis.Zharkov ddbdfafa79 Remove OI/NI attributes from test data 2021-05-25 13:28:27 +03:00
Denis.Zharkov 2ecba6ac39 Remove WITH_NEW_INFERENCE directive from all tests
This directive anyway does not make test run twice with OI, and with NI
It only once run the test with specific settings (// LANGUAGE)
and ignores irrelevant (OI or NI tags)
2021-05-25 13:28:26 +03:00
Denis.Zharkov d4586cefb4 FIR: Properly deserialize upper bounds of classes type parameters
^KT-46661 Fixed
2021-05-25 13:28:25 +03:00
Alexander Shabalin 858e3584a9 Disable escape analysis with the new MM 2021-05-25 10:06:40 +00:00
Ivan Gavrilovic 4f64431f10 KT-46820: Kotlin gradle plugin - prevent multiple threads from registering task
... as that is not supported by the underlying mechanism.
Build service that holds info about the incremnetal compilation
may be instantiated only during execution, and multiple tasks may
try to do that. Because the container which holds info about all
build services is not thread-safe, this change adds synchronization.

Fixes #KT-46820
2021-05-25 12:49:07 +03:00
Mikhail Glukhikh 1b7425f428 FIR mangler: handle situation with invisible type in f/o signature
Before this commit, FIR mangler effectively dropped f/o parameter with
invisible type from this module. It could lead to signature clashes.
Now we insert classId in mangler string instead.
This fixes FIR bootstrap.
2021-05-25 11:38:48 +03:00
Denis.Zharkov 924678a00d FIR: Mark a pack of tests (53) as FIR_IDENTICAL 2021-05-25 10:25:05 +03:00
Denis.Zharkov 26002a040f Remove OI/NI attributes from test data 2021-05-25 10:25:05 +03:00
Denis.Zharkov fe1d540c95 Remove WITH_NEW_INFERENCE directive from all tests
This directive anyway does not make test run twice with OI, and with NI
It only once run the test with specific settings (// LANGUAGE)
and ignores irrelevant (OI or NI tags)
2021-05-25 10:25:04 +03:00
Denis.Zharkov accd48de8c FIR: Properly deserialize upper bounds of classes type parameters
^KT-46661 Fixed
2021-05-25 10:25:04 +03:00
Ivan Kochurkin cf531dbbe6 [FIR] Implement TYPE_VARIANCE_CONFLICT, TYPE_VARIANCE_CONFLICT_IN_EXPANDED_TYPE diagnostics, fix tests 2021-05-25 00:07:33 +03:00
Ivan Kochurkin ef53f0e0b3 [FIR] Render diagnostics parameters instead of full text in debug messages (closer to old tests) 2021-05-25 00:07:32 +03:00
Ivan Kochurkin 6de97e17fe [FIR] Fix max parameters count in diagnostics from 3 to 4 2021-05-25 00:07:30 +03:00
Elena Lepilkina 7f591bcfd4 [K/N] Changed llvmInlineThreshold for new form of bitcode 2021-05-24 15:46:21 +00:00
Elena Lepilkina 2320eb8b44 [K/N] Replace invokes with combination of calls and branch instructions 2021-05-24 15:46:20 +00:00
Nikita Bobko 0be5602363 Move ':plugins:lombok:lombok-ide-plugin' module under 'attachedIntellijVersion' the flag 2021-05-24 17:02:46 +02:00
Dmitriy Dolovov 9ab764e9fd [Native] Disable debug mode in KonanLocalTest (-g) 2021-05-24 13:23:51 +00:00
nataliya.valtman 1db09d78b3 KT-46833: print correct message when history files are unavailable 2021-05-24 13:51:43 +03:00
Ilya Muradyan 23faacd21b [Scripting] Expose scripting-dependencies as API of Maven resolver 2021-05-22 04:10:39 +03:00
Ilya Muradyan 0e7d690923 [Scripting] Change compile to implementation in Maven resolver 2021-05-22 00:38:46 +03:00
Ilya Muradyan bead0e3412 [Scripting] Fix Maven resolver dependencies 2021-05-22 00:38:44 +03:00
Dmitry Petrov 261b42f5c5 JVM_IR KT-46822 don't generate too deep StringBuilder.append trees 2021-05-21 22:28:54 +03:00
Dmitry Petrov ba00709e4d JVM_IR KT-46839 lower varargs for *arrayOf function references 2021-05-21 22:06:52 +03:00
Alexander Udalov 6ca7b39f6a Psi2ir: do not load abbreviated types with not found classifier
This is not an ideal fix of the problem since the fact that
AbbreviatedType's classifier should be a TypeAliasDescriptor is a
reasonable assumption that might fail somewhere else, later in the
pipeline.

Previous attempts to fix this issue that were unsuccessful:

1) Do not load abbreviations for such types in deserialization at all.
   Unfortunately, it broke quite a few things like reflection and
   decompiler, where types frequently refer to symbols not reachable
   from the point where they're requested, yet we have the FQ name of
   the typealias, which is enough to render the abbreviation properly in
   both these use cases.

2) Load classifiers for unresolved abbreviations as
   MockTypeAliasDescriptor instead of MockClassDescriptor in
   NotFoundClasses. Technically this was a revert of
   e19c1b5364. But this failed because we
   don't have enough information about such typealias to correctly set
   its `expandedType`/`underlyingType` (just using nullable Any as
   before that commit is not good enough). We only know its underlying
   class (from one usage of such typealias), and even supporting that
   would involve a major refactoring of TypeDeserializer which is
   painful.

 #KT-45308 Fixed
2021-05-21 19:36:30 +02:00
Alexander Udalov ceec451f3f Minor, slightly refactor TypeDeserializer.typeConstructor 2021-05-21 19:36:30 +02:00
Dmitriy Dolovov ab6f577964 [Native] Support suspend functions as supertypes (remove debug code)
^KT-46777
2021-05-21 17:31:46 +00:00
Hung Nguyen c0977dd638 Build report: Print task name instead of TaskRecord@hashCode
Previously when kotlin.build.report.enable=true, the build report
contained lines such as:
  org.jetbrains.kotlin.gradle.report.TaskRecord@2db49688 was skipped

This commit prints the task name instead of TaskRecord@hashCode so that
it is more readable, like this:
  Task ':app:compileDebugKotlin' was skipped

Bug: N/A (Clean up)
Test: Existing tests + manually checked the build report output
2021-05-21 19:35:25 +03:00
Dmitriy Novozhilov 478a512b24 [FIR] Expand type of const val in FirConstPropertyChecker 2021-05-21 17:38:26 +03:00
Vasily Levchenko 669985f853 [debug][stacktrace][mac] more tracing for stacktrace debugging 2021-05-21 11:52:08 +00:00
Dmitriy Dolovov 0be542fd33 [Native] Always enable assertions in KonanLocalTest 2021-05-21 14:37:30 +03:00
Dmitriy Novozhilov a1ae108ce5 [FIR] Properly generate IDE diagnostics from multiple diagnostics lists 2021-05-21 14:18:58 +03:00
Dmitriy Novozhilov 09e3629d5d [FIR] Move common checkers container from :entrypoint to :checkers module 2021-05-21 14:18:57 +03:00
Dmitriy Novozhilov a9838131ad [FIR] Move jvm specific checkers to checkers.jvm module 2021-05-21 14:18:56 +03:00
Dmitriy Novozhilov f3c58a1df7 [FIR] Add separate diagnostic list for JVM specific diagnostics 2021-05-21 14:18:55 +03:00
Dmitriy Novozhilov 7f18d147c1 [FIR] Introduce new module for jvm specific checkers 2021-05-21 14:18:54 +03:00
Dmitriy Novozhilov 9825babc23 [FIR] Move model classes of diagnostics generation DSL to separate package 2021-05-21 14:18:52 +03:00
Denis.Zharkov f0c85e0935 FIR: Add comments to freshly muted tests 2021-05-21 13:53:55 +03:00
Andrey Zinovyev 617d99faac [FIR] Don't keep ref to whole class proto
Store module name only
2021-05-21 12:49:59 +03:00
Andrey Zinovyev a121061df7 [FIR] Get module name for deserialized fir2ir classes 2021-05-21 12:49:58 +03:00
Svyatoslav Scherbina dc8934ab22 Native: fix crash in custom LLVM diagnostics handler
48a684c0 added custom LLVM diagnostic handler, using JvmCallbacks machinery,
thus triggered a bug in the latter: callbacks are cached and outlive the compilation session,
but rely on memory that is reclaimed at the end of the compilation session.
So during a subsequent compilation in the same process (e.g. when the compiler runs in the
Gradle daemon process), LLVM might call the callback which accesses the reclaimed memory, 
which in turn causes the crash.

Fix this by forcing JvmCallbacks to allocate memory that doesn't "expire" at the end of the compilation session.
2021-05-21 07:34:34 +00:00
Elena Lepilkina 573191251e [K/N] Remove redundant update of debug info 2021-05-21 06:55:07 +00:00
Alexander Shabalin 73533e4b19 Make NoOp GC support multiple mutators 2021-05-21 06:31:09 +00:00
Ilya Kirillov 792ac6ab63 FIR IDE: update resolve call testdata after adding targetFunction to KtFunctionalTypeVariableCall 2021-05-21 00:04:48 +02:00