Commit Graph

41639 Commits

Author SHA1 Message Date
Alexander Udalov 60d96b7d15 Remove some leftover imports of unsafe cast functions 2022-12-06 19:44:56 +00:00
Alexander Udalov fd9b19ee49 Remove unsafe cast function usages from IR modules 2022-12-06 19:44:55 +00:00
Alexander Udalov 1418423423 Remove unsafe cast function usages from JVM backend modules 2022-12-06 19:44:55 +00:00
Pavel Mikhailovskii 25ad7fe31c KT-51863 Account for context receivers in calls with changed parameter order 2022-12-06 16:28:08 +00:00
Dmitrii Gridin 856d272ca4 [SLC] implement lazy calculation for modifiers
and fix some annotations

^KTIJ-23783 Fixed
2022-12-06 13:40:47 +00:00
Dmitrii Gridin e2082fb0d7 [SLC] fix visibility for lateinit properties from companion
^KTIJ-23519 Fixed
2022-12-06 13:40:46 +00:00
Dmitrii Gridin 7bfa900ce6 [SLC] fix modality for methods and property accessors
^KTIJ-23783
2022-12-06 13:40:46 +00:00
Dmitrii Gridin a8c111b304 [SLC] drop redundant resolve for visibility, fix several cases
^KTIJ-23783
2022-12-06 13:40:45 +00:00
Dmitrii Gridin cba70d70a7 [SLC] drop hack with setParent for annotations
^KTIJ-23783
2022-12-06 13:40:44 +00:00
Nikolay Krasko 13a4fc7f36 Remove mute-platform.csv tests 2022-12-05 20:11:25 +00:00
Ilya Kirillov 8e70dbc7e3 [FIR] fix SOE on cycle hierarchy of Java classes during status computation 2022-12-05 17:27:43 +01:00
Ilya Kirillov 03549d4b98 [FIR] remove suspicious safe-cast to FirResolvedDeclarationStatus in status tranformer
Statuses of super members should already be preresolved
2022-12-05 17:27:43 +01:00
Ilya Kirillov 82fe86c003 [FIR] fix lazy resolution contract violation in status resolve transformer
Previously, there was issue with resolving statuses of properties' super
declarations for anonymous/local classes.

And this problem was hidden by calling lazyResolveToPhase(STATUS) which
is a violation of lazy resolution contract as lazy resolution to status
cannot be called from the status phase itself

^KT-54890
2022-12-05 17:27:42 +01:00
Ilya Kirillov c899f6dae3 [LL FIR] fix lazy resolution of member property statuses for anonymous objects
Previously, statuses of superclass which are not local was not ignored

Sometimes it worked in the IDE by calling lazyResolveToPhase
which is a violation of the lazy resolution contract

^KT-54890
2022-12-05 17:27:42 +01:00
Ilya Kirillov c66fbf5c0e [LL FIR] fix lazy resolution of member-property statuses for local classes
Previously, statuses of superclass which are not local was not ignored

Sometimes it worked in the IDE by calling lazyResolveToPhase
which is a violation of the lazy resolution contract

^KT-54890
2022-12-05 17:27:42 +01:00
Andrey Uskov 1550a37b17 Cleanup: remove deprecated methods from Kotlin daemon 2022-12-05 16:02:04 +00:00
Andrey Uskov c9e0100214 Remove experimental implementation of Kotlin Compiler Daemon
#KT-50846 Fixed
2022-12-05 16:02:03 +00:00
Jaebaek Seo a637626601 Handle context receiver in KtModifierListOwner.addModifierList()
The existing `KtModifierListOwner.addModifierList(newModifierList)`
function adds a visibility keyword (e.g., `private`) in front of the
`context(..)` modifier, which generates wrong code. This commit fixes
it.

^KTIJ-23728 fixed
2022-12-05 11:20:03 +01:00
Simon Ogorodnik 9856204925 KTI-1046. Tests Replace XmlParser with JDOM in tests-spec
Fix test behaviour with two artifacts of spec on teamcity
2022-12-05 07:30:24 +00:00
Andrey Uskov 41ff283856 Don't call File.getCanonicalPath in KGP
Relates to KT-54579.
2022-12-04 18:49:30 +00:00
Steven Schäfer 21fef70367 Standardize context receiver parameter names
Previously, FIR used `_context_receiver_n` while FE10 used `<this>` for
all context receiver parameters. This commit changes the code in FE10
to follow the convention from FIR.
2022-12-03 00:11:38 +01:00
Mikhail Glukhikh 5cf1a88c42 FE: move delegate name functions to NameUtils 2022-12-02 21:54:18 +00:00
Steven Schäfer a7ba081d22 FIR: Fix interface delegation ABI
- Unifies the name of the `$$delegate_<n>` field between K1 and K2.
- Make the `$$delegate_<n>` field private
2022-12-02 21:54:18 +00:00
Vladislav Grechko cb93e9d408 Get rid of redundant boxing of unsigned operands of infix 'compareTo'
^KT-48759: Fixed
2022-12-02 18:25:52 +00:00
Ilya Kirillov 9dd398dc77 [FIR] do not consider FirDefaultPropertyBackingField to be always resolved to BODY_RESOLVE
Otherwise, lazy resolve will never resolve it
2022-12-02 17:08:34 +00:00
nataliya.valtman 70fb18e160 KT-54941: Use Debug level for process launch fallback reason 2022-12-02 17:42:23 +01:00
Alexander Korepanov d8ab9498ab [JS IR] Fix inline functions call graph in IC
Add a dependency for inline function references,
 because in some cases the references may be inlined.

^KT-55144 Fixed
2022-12-02 13:50:37 +00:00
Alexander Korepanov c31705240a [JS IR] Support a module friendship in IC infrastructure
^KT-55097 Fixed
2022-12-02 13:50:36 +00:00
Artem Kobzar 76e629340f [K/JS] Add miss LazyIr into klib Ir generation process 2022-12-02 13:28:18 +00:00
Dmitrii Gridin 35ca45a608 [SLC] fix IDE test 2022-12-02 11:59:29 +01:00
Sebastian Sellmair 0575567da4 [Gradle] Implement KotlinLibrary.builtInsPlatform extension
KT-55189
2022-12-02 07:47:28 +00:00
Egor Kulikov fb2485f83c [FIR] Make constructor delegate lazy in RawFirBuilder
Fifth step for ^KT-52615

Merge-request: KT-MR-7860
Merged-by: Egor Kulikov <Egor.Kulikov@jetbrains.com>
2022-12-02 03:12:51 +00:00
Sergej Jaskiewicz 1539d7ef1a [klib] Bring package names in sync with the directory layout
Basically, some package names were Native-specific, whilst the packages
themselves were not Native-specific at all. This was already reflected
in the directory layout, but not in the package names.
This is fixed here.

NFC, just an automatic rename of packages with fixes of imports.
2022-12-01 21:46:43 +00:00
Sergej Jaskiewicz 672be7ecb5 [test] Allow files with same names in tests
Introduce a directive that allows compiling different files with
matching names in tests.
2022-12-01 17:15:55 +00:00
Artem Kobzar 3f4a937ad6 [K/JS] Don't generate TypeScript definitions from ExportModel if the -Xgenerate-dts flag was not provided ^Fixed KT-53940 2022-12-01 15:47:08 +00:00
Artem Kobzar 0f0421ea3d [K/JS] Generating TypeScript definitions for exceptions and rest of the types ^Fixed KT-53940 2022-12-01 15:01:24 +00:00
Dmitriy Novozhilov 1281b778fb [Test] Fix broken testdata 2022-12-01 14:47:24 +02:00
Alexander Udalov 3ab2b82878 JVM IR: script is a valid container for local delegated properties
When serializing metadata for local delegated properties, we need to
find a valid container class where to put it, and where kotlin-reflect
will be able to find that metadata at runtime. Taking just the closest
class lexically doesn't work, because in the attached test, it is a
class for a lambda which does not have metadata and thus does not have a
way to store any extra information.

So, in 1663619606 we started to look for the closest "non-synthetic"
class to store this metadata. But apparently it was missed that script
is a valid container class. In the test, this meant that no
non-synthetic container classes were found to store the metadata, so we
falled back to using the closest class anyway (see `?: this` in
`rememberLocalProperty`), which turned out to be the lambda.

After this change, metadata for local delegated property in a lambda
will be stored in the script class, just like it's stored in the file
class in the non-script case.

 #KT-55065 Fixed
2022-12-01 12:55:01 +01:00
Dmitriy Novozhilov 0af16f03c5 [FIR] Fix formatting 2022-12-01 07:29:39 +00:00
Dmitriy Novozhilov 8d2701209e [FIR] Add documentation to AbstractPredicate and FirPredicateBasedProvider 2022-12-01 07:29:39 +00:00
Dmitriy Novozhilov 6864433581 [FIR] Support resolution of meta-annotations before supertypes
Now annotations are resolved with following algorithm:
1. On COMPILER_REQUIRED_ANNOTATIONS we resolve all annotations
     and store results if this is compiler annotation, plugin annotation,
     or annotation with meta-annotation (meta annotations are checked
     recursively with designated resolution if needed)
2. On TYPES stage we resolve all those annotations once again and if
     some annotation changes resolution then we keep type from p.1 and
     report error on this annotation, so user should disambiguate it

Ambiguity may occur because of nested annotations with same name as
  plugin annotations:

```
annotation class SomeAnnotation // (1) plugin annotation

open class Base {
    annotation class SomeAnnotation // (2)
}

class Derived : Base() {
    @SomeAnnotation // <-----------------
    class Inner
}
```
At COMPILER_REQUIRED_ANNOTATIONS annotation call will be resolved to (1)
  because at this stage supertypes are not resolved yet, and we consider
  only importing scopes. At the TYPES stage we will find correct
  annotation from supertype
2022-12-01 07:29:39 +00:00
Dmitriy Novozhilov aaf0a1f396 [FIR] Introduce shouldNotBeCalled utility function 2022-12-01 07:29:38 +00:00
Dmitriy Novozhilov 6b343515e1 [Test] Save IR bytecode dumps from BytecodeListingHandler to .ir.txt file instead of _ir.txt
This is needed to keep consistency with other dumps and to allow
  test helper plugin to recognize those dumps
2022-12-01 07:29:37 +00:00
Dmitriy Novozhilov 246dc985a6 [FIR] Rework predicates system
Now predicates are split into LookupPredicate and DeclarationPredicate
  hierarchies. First one allows to perform global search for declarations
  and second one allows to check if some declaration matches the predicate.
Predicates with meta annotations are excluded from LookupPredicates,
  because it's impossible to create index of annotations with meta-annotations,
  because they can be located inside binary dependencies (so to achieve
  this we need to scan the whole classpath).
Also only one predicate with meta-annotations is left in DeclarationPredicate
  hierarchy (AnnotatedWithMeta)

^KT-53874 Fixed
^KT-53590 Fixed
2022-12-01 07:29:37 +00:00
Dmitriy Novozhilov dff5799c58 [Test] Don't create separate .fir.txt file in BytecodeListingHandler if not necessary 2022-12-01 07:29:35 +00:00
Pavel Mikhailovskii f96d41e414 KT-4107 Don't generate readResolve for data objects 2022-11-30 21:07:20 +00:00
Evgeniy.Zhelenskiy fa4a4e56f3 [Tests] Remove unnecessary usages of OPTIONAL_JVM_INLINE_ANNOTATION
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2022-11-30 18:55:42 +00:00
Evgeniy.Zhelenskiy 50310d42e3 [IR] MFVC lateinit variables and properties test
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2022-11-30 18:55:42 +00:00
Evgeniy.Zhelenskiy b7f249cdb6 [IR] Fix bugs in MFVC function references support
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2022-11-30 18:55:41 +00:00
Evgeniy.Zhelenskiy 86809e898a [IR] Combine value class lowerings
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2022-11-30 18:55:41 +00:00