Commit Graph

62725 Commits

Author SHA1 Message Date
Alexander Gorshenev fac71ac812 Be prepared if in the future we extend klib abi version to a triple 2020-03-10 12:06:59 +03:00
Leonid Startsev 5d73550b48 Do not check visibility of enum entries in explicit api mode
Although they're instances of DeclarationDescriptorWithVisibility,
they can't have visibilities

#KT-37040 Fixed
2020-03-10 11:55:59 +03:00
Nicolay Mitropolsky 753d4b3cbd Uast: UastFakeLightMethod equality fix (KT-37200) 2020-03-10 11:33:56 +03:00
Yan Zhulanow c1f89159d9 Pill: Add compiler.version module to Pill 2020-03-10 17:24:23 +09:00
Roman Artemev 7fff4e78e5 [KLIB] Do not include return type into mangle 2020-03-10 11:12:09 +03:00
Roman Artemev 62621de4fc [KLIB] Don't have a special mangle for internal declarations 2020-03-10 11:12:09 +03:00
Roman Artemev 7430bfe518 [KLIB] Update test data
- mute temporary broken test
 - add regression test
2020-03-10 11:12:08 +03:00
Roman Artemev 7034edac4c [JS IR] Move signature consistency checker into appropriate place 2020-03-10 11:12:08 +03:00
Vladimir Dolzhenko 3c26d38804 Revert Clear computable when value is calculated in LockBasedStorageManager
Relates to #KT-35256
2020-03-10 09:10:46 +01:00
Vladimir Dolzhenko ddba8e7691 Extend incremental analysis to object declaration
Fixed #KT-37250
2020-03-10 09:08:47 +01:00
Georgy Bronnikov ae208f58a4 Workaround for KT-37302 2020-03-10 10:58:36 +03:00
pyos 735fae0e5a JVM_IR: apply TailCallOptimizationLowering to all suspend functions
Even if a function is known to be tail call because it's a compiler
generated bridge, the tail return might still need to be added in case
of Unit return type.
2020-03-09 19:21:32 +01:00
pyos dc388f3f3a JVM_IR: add a test for suspend inline fun with defaults in a class
This is one example of a function replaced by a lowering after
AddContinuationLowering mentioned in the last commit: the lowering that
makes default stubs static is further down. Although this is not a
lambda, calling getOrCreateSuspendFunctionViewIfNeeded on it in the
inliner is fatal all the same.
2020-03-09 17:05:42 +01:00
pyos 862cd5665b JVM_IR: add continuations to inline suspend lambdas in the lowering
Delaying suspend view generation until the inliner is not a good idea
because it prevents lowerings after AddContinuationLowering from
further transforming the declarations.
2020-03-09 17:05:42 +01:00
pyos b393f2f680 JVM_IR: merge suspend view and suspend stub maps 2020-03-09 17:05:42 +01:00
Denis Zharkov 15a0157c42 FIR: Support proper loading of Map.merge 2020-03-09 12:56:02 +03:00
Denis Zharkov 4a1302e385 FIR: Add problematic test case
^KT-37318 Open
2020-03-09 12:56:02 +03:00
Denis Zharkov b2ff4d7f9a FIR: Support expansion of flexible type-alias-based types in inference 2020-03-09 12:56:02 +03:00
Denis Zharkov afb84b1d2a FIR: Support type aliased declarations in HtmlFirDump 2020-03-09 12:56:02 +03:00
Victor Petukhov 92a0ddfe71 NI: discard def not null types if they appear in return positions, in inv or in variance
^KT-37343 Fixed
2020-03-08 19:00:27 +03:00
Mark Punzalan 368b0d9b0b [JVM IR] Use reference equality when comparing enums. 2020-03-06 23:01:32 +01:00
Mark Punzalan a732e8f5fe [JVM IR] Ensure there is one accessor for each super access from a
subclass when there are multiple subclasses in a file.
2020-03-06 22:59:52 +01:00
Steven Schäfer 34fb636904 JVM: Generate generic signatures for delegate fields 2020-03-06 21:51:30 +01:00
pyos 20ea77d55d JVM_IR: refactor ToArrayLowering and make matching more precise
* If `toArray` is inherited from Java, it may take an argument or
    return a value of a flexible type, which looks nullable in IR;
  * The returned array may also have `out` variance of the type
    argument;
  * `Array<T>` is not the same as `Array<Any?>` if `T` is neither `Any`
    nor `in Something`, so presence of `toArray(): Array<T>` does not
    mean we don't need to generate a new `toArray`.
2020-03-06 18:33:25 +01:00
Alexander Udalov a2b6282d49 Refactor ApiVersion.KOTLIN_1_4 usages in relation to unified null checks 2020-03-06 16:55:55 +01:00
Alexander Udalov 98aecbef6b Optimize runtime representation for callable reference subclasses
Instead of generating overrides for getOwner/getName/getSignature in
each anonymous class representing a callable reference, pass them to the
superclass' constructor and store as fields. This occupies some small
memory but helps to reduce the size of the generated class files, and
will be helpful for adding further runtime information to callable
references, such as information about implicit conversions this
reference has been subject to.

Represent owner as java.lang.Class + boolean instead of
KDeclarationContainer, so that the unnecessary wrapping Class->KClass
wouldn't happen before it's needed, and also to make sure all callable
references remain serializable.

Note that the argument type where the "is declaration container a class"
is passed is int instead of boolean. The plan is to pass the
aforementioned implicit conversion information as bits of this same
integer value.

 #KT-27362 Fixed
2020-03-06 16:55:07 +01:00
Alexander Udalov 8d7c8672ac Generate reference to existing class for builtin function references
Instead of non-existing `kotlin.KotlinPackage`, which led to
NoClassDefFoundError as soon as reflection tried to call getOwner on a
builtin callable reference, use a reference to a new physical class
`kotlin.jvm.internal.Intrinsics$Kotlin`. This will allow to support
KT-17151.

Note that for API version less than 1.4, this will still lead to
NoClassDefFoundError, but this is not worse than the current situation
where it happens anyway.
2020-03-06 16:55:05 +01:00
simon.ogorodnik bfa371ea73 [FIR] Rewrite casts to reduce performance dispersion 2020-03-06 18:13:00 +03:00
simon.ogorodnik 426f498e87 [FIR] Forking runner for modularized test 2020-03-06 18:12:59 +03:00
Dmitriy Novozhilov 63a1e7c6ff [FIR] Add test for #KT-37321 2020-03-06 18:10:52 +03:00
Dmitriy Novozhilov 92449d6d9b [FIR] Organize code for postponed arguments 2020-03-06 18:10:52 +03:00
Dmitriy Novozhilov 1c0fd7342f [FIR] Support completion of lambdas with type variable as expected type
#KT-37310 Fixed
#KT-37304 Fixed
2020-03-06 18:10:52 +03:00
Dmitriy Novozhilov 643d7be12d [FIR] Add base class for PostponedResolvedAtomMarker to FIR 2020-03-06 18:10:51 +03:00
Dmitriy Novozhilov 2a58fc238f [FIR-TEST] Move stdlib tests for delegates to separate directory 2020-03-06 18:10:51 +03:00
Dmitriy Novozhilov 3655f0c499 [FIR-TEST] Move fixed test from problems directory 2020-03-06 18:10:51 +03:00
pyos 037b442e86 JVM_IR: do not explicitly initialize Refs to default values 2020-03-06 17:58:36 +03:00
pyos 13b04e63be JVM_IR: wrap inline class objects in unboxed refs 2020-03-06 17:58:36 +03:00
pyos 68745ec43f JVM_IR: refactor JvmSharedVariablesManager 2020-03-06 17:58:35 +03:00
Dmitriy Dolovov ed96b81a42 [Commonzer] Fix ISE during commonization, improve interner performance
Issue #MMPP-191
2020-03-06 21:44:58 +07:00
Ilya Goncharov 7da220b0a2 [Gradle, JS] Check current chosen js compiler for targets in JS and MPP 2020-03-06 17:26:48 +03:00
Ilya Goncharov a1263e445e [Gradle, JS] Add redundant methods for single js plugin 2020-03-06 17:26:48 +03:00
pyos 8487211ae1 JVM_IR: refine the condition for mangling names of multifile members
Private $$forInline versions of public suspend functions should not
be mangled. (Note that there are no $$forInline versions of private
suspend functions, as those are effectively inline-only.)
2020-03-06 14:33:50 +01:00
Ilya Goncharov 8fbfa8b819 [Gradle, JS] Migrate from singletons to classes 2020-03-06 16:07:11 +03:00
Ilya Goncharov 82de930574 [Gradle, JS] Consider transitivity in cache of npm dependencies 2020-03-06 16:07:11 +03:00
Ilya Goncharov 49814c438c [Gradle, JS] Fix naming 2020-03-06 16:07:10 +03:00
Ilya Goncharov 2eea8b0760 [Gradle, JS] Support transitive mode for npm dependencies
#KT-36196 fixed
2020-03-06 16:07:10 +03:00
Ilya Goncharov d108c8ef51 [Gradle, JS] Move logic of resolving NpmDependency to Npm Api
#KT-36196 fixed
2020-03-06 16:07:10 +03:00
Sergey Igushkin 90f4f5db26 Internal visibility between common source sets in Gradle (KT-37264)
In KotlinCompileCommon, pass the friendPaths and refinesPaths arguments

In KotlinNativeCompilation, add both friend and refined dependencies as
friends for now.

In getVisibleSourceSetsFromAssociateCompilations, exclude the metadata
compilations to avoid incorrect results (those compilations don't have
proper kotlin

Issue #KT-37264 Fixed
2020-03-06 15:56:41 +03:00
Sergey Igushkin 3858c8e1f8 Support friend internal visibility in K2Metadata compiler (KT-37264)
Add and handle the friend paths and refines paths compiler arguments;
Reuse klib dependency module descriptors in the resolver for project;

Issue #KT-37264
2020-03-06 15:56:40 +03:00
Natalia Selezneva 04c924a119 Remove idea-gradle-tooling-api.jar from IDEA 2020
Because gradle-6.1.jar is now bundled into idea-gradle plugin
2020-03-06 14:59:20 +03:00