Ivan Kylchik
cc56acc2c2
Add configuration into IrInterpreterEnvironment
...
This configuration will contains all necessary setting for interpreter
and will be replenished over time
2021-08-06 13:33:10 +03:00
Ivan Kylchik
b150cc9537
Implement better support for default args in interpreter
...
Now supported default args:
1. from super class or interface;
2. with field access, declared in interface;
3. with field access, declared in outer class.
2021-08-06 13:33:09 +03:00
Ivan Kylchik
42ea17b151
Support interpretation of dataClassArrayMemberToString method
2021-08-06 13:33:09 +03:00
Ivan Kylchik
15808cb376
Lower priority of captured variables in interpreter
2021-08-06 13:33:08 +03:00
Ivan Kylchik
4f3d47eed3
Remove unused equals and hashCode methods from Primitive class
...
They were used only when primitive objects were put in the collection
as they were, in Primitive state wrapper
2021-08-06 13:33:07 +03:00
Ivan Kylchik
0716c557fe
Allow inner class to has outer super class in interpreter
2021-08-06 13:33:07 +03:00
Ivan Kylchik
574c607f1c
Support proper subtype check in interpreter for KFunction
2021-08-06 13:33:06 +03:00
Ivan Kylchik
9638af042d
Support proper behavior in interpreter for cast of null value
2021-08-06 13:33:05 +03:00
Ivan Kylchik
c2fc017d96
Move doubleArrayOf test file to proper place in interpreter test data
2021-08-06 13:33:04 +03:00
Ivan Kylchik
b44fd1a6fe
Simplify logic of interpreting invoke method for lambdas
...
For now will be created separate invoke method that will contains
a call to lambda. This way it is clearer and more intuitive
2021-08-06 13:33:04 +03:00
Ivan Kylchik
06a8156376
Change logic of returning object from constructor in interpreter
...
For now there is no need to place object on stack before evaluation.
The result will be taken from memory and all unnecessary values on
stack will be removed
2021-08-06 13:33:02 +03:00
Ivan Kylchik
3326cbd9c0
Support passing property as argument to array constructor in interpreter
2021-08-06 13:33:02 +03:00
Ivan Kylchik
59fefb6214
Fix property rendering in interpreter
2021-08-06 13:33:01 +03:00
Ivan Kylchik
af67e950c4
Replace all assert calls in interpreter with internal verify
...
This swap of methods allow us to handle all asserted errors as
critical and not to process them inside interpreter
2021-08-06 13:33:00 +03:00
Ivan Kylchik
23392b73a9
Simplify the interpretation logic of methods defined in super Wrapper
2021-08-06 13:32:58 +03:00
Ivan Kylchik
cf20e64c61
Support basic interpretation of IrGetClass
2021-08-06 13:32:57 +03:00
Ivan Kylchik
6fe8dd1254
Add ir interpreter tests for ir built from psi
2021-08-06 13:32:57 +03:00
Dmitriy Novozhilov
a9882a86c0
[FIR] Consider extension receiver type in conflicting members checker
2021-08-06 13:31:20 +03:00
Victor Petukhov
cd09c8ba51
Report CANNOT_INFER_PARAMETER_TYPE on any error value parameters of a lambda
...
^KT-48058 Fixed
2021-08-06 13:27:57 +03:00
Victor Petukhov
1966915e92
Create DONT_CARE type only for dependent lambdas (i.e. to be resolved through the type inference later)
...
^KT-47493 Fixed
2021-08-06 13:27:56 +03:00
sebastian.sellmair
dbdc6176f0
[Gradle] GradleIT: kotlinToolingMetadataAndroid: Add java 8 support
...
^KT-48019
2021-08-06 09:25:01 +00:00
Andrey Zinovyev
6dd4164f1e
[FIR][CFG] Link finally exit to jump target
...
Instead of try exit node. So try exit is used only for real exits from
try expressions.
2021-08-06 11:49:35 +03:00
Andrey Zinovyev
32426da625
[FIR][CFG] Support multiple levels of finally blocks in jumps
...
Jump inside try expressions now goes through all finally blocks between
it and the target
2021-08-06 11:49:35 +03:00
Andrey Zinovyev
06b23d5937
[FIR] Improve the control flow graph around try expressions
...
1. throw goes to catches instead of main exist block
2. return goes via finally (single level only supported atm)
3. collect non-direct return to retrieve all return expressions easier
2021-08-06 11:49:34 +03:00
Yahor Berdnikau
7b6dddf012
Replace usages of IncrementalTaskInputs with InputChanges.
...
Gradle IncrementalTaskInputs was long time ago deprecated and not
so flexible as a new proposed way - InputChanges.
^KT-47867 Fixed
2021-08-06 08:44:56 +00:00
Aleksei.Cherepanov
c3344549a8
Avoid overwriting counters file of Lookups storage if it hasn't changed
2021-08-06 02:27:18 +03:00
Aleksei.Cherepanov
cb92413cd8
Change hashcode evaluation for portable caches
...
Use canonical path and strictly evaluation of hash instead of using insensitive hashcode
#KTIJ-17296 Fixed
2021-08-06 02:27:17 +03:00
Aleksei.Cherepanov
f16b1c2d69
Add flag to cache storage to reduce number of disk accesses
2021-08-06 02:27:15 +03:00
Sergey Igushkin
395b2119a1
Fixup for the fix of KT-47506 interfering with CInterop changes
...
As the `*Default` configurations are gone, each K/N target now has two
consumable configuration, the `*ApiElements` and the
`*CInteropApiElements`. They have diverging sets of attributes (both
more concrete than `*Default` had).
To make their attribute sets non-diverging, we set the
local-to-project=public on the `*CInteropApiElements` in order to match
the same attribute on the `*ApiElements` configuration
Related to the original fix of KT-47506
2021-08-05 17:53:37 +00:00
Mikhail Glukhikh
11f951e6d1
RawFirBuilder: don't convert scripts to prevent exceptions
2021-08-05 19:24:06 +03:00
Mikhail Glukhikh
8d27f102e7
Fix typo: addCompetedCall -> addCompletedCall
2021-08-05 19:24:06 +03:00
Mikhail Glukhikh
469b3b9d02
Raw FIR: re-use OperatorNameConventions for delegate-related names
2021-08-05 19:24:05 +03:00
Mikhail Glukhikh
22ccb7a943
FIR: discriminate generics during callable reference resolve
2021-08-05 19:24:04 +03:00
Mikhail Glukhikh
e924ee3150
FIR: add test with minOf ambiguity
2021-08-05 19:24:02 +03:00
sebastian.sellmair
ee0b64cb29
[Gradle] BuildKotlinToolingMetadataTask: Ensure clean output directory
...
This is done to prevent unwanted files from also being located
in the output directory. If the task is executed it is expected
that the output directory only contains this one file.
This is necessary, since *everything* located in the output directory
will potentially be bundled into release apks.
^KT-48019
2021-08-05 16:00:08 +00:00
sebastian.sellmair
e897c60ef1
[Gradle] [Android] Only bundle kotlin tooling metadata for non debuggable variants
...
^KT-48019
2021-08-05 16:00:08 +00:00
sebastian.sellmair
79565da904
[Gradle] [Android] Implement 'test KotlinToolingMetadataArtifact is bundled into apk'
...
Covers ^KT-48019
2021-08-05 16:00:08 +00:00
sebastian.sellmair
82a70a205b
[Gradle] [Android] Include kotlin-tooling-metadata.json in apk artifact
...
^KT-48019 Verification Pending
2021-08-05 16:00:07 +00:00
Svyatoslav Scherbina
a22ef02e47
Native: disable compiler caches for experimental memory model
...
Experimental MM doesn't support compiler caches yet.
2021-08-05 15:22:00 +00:00
Svyatoslav Scherbina
4abbac1ff1
Native: improve code that handles unsupported compiler caches
2021-08-05 15:22:00 +00:00
Dmitry Petrov
02d8c7527e
JVM_IR more aggressive if-null expressions fusion
...
Assume that changing a return type from T to T?
is not a binary-compatible change.
2021-08-05 17:51:49 +03:00
Dmitriy Novozhilov
6f0bf766f2
[Test] Add single service for checking that codegen test is ingored
...
This approach is better than manual check for `IGNORE_BACKEND` directive
because it also tracks `IGNORE_BACKEND_FIR` directive and reduces
duplicating code
2021-08-05 16:59:00 +03:00
Dmitriy Novozhilov
c8386ad1c7
[Test] Properly handle output from separate jvm instance in box tests
2021-08-05 16:58:59 +03:00
Dmitriy Novozhilov
13b5f87f3a
[Build] Add gradle properties for different sets of modularized testdata
2021-08-05 15:22:42 +03:00
Dmitriy Novozhilov
d7368c341e
[Build] Update kotlin-build-gradle-plugin version to 0.0.32
2021-08-05 15:22:41 +03:00
Dmitriy Novozhilov
adbeda12a6
[Build] Remove pathToKotlinModularizedTestData from kotlin-build-gradle-plugin
2021-08-05 15:22:40 +03:00
Dmitriy Novozhilov
79ff02fd97
[Build] Add documentation for some useful properties in gradle.properties
2021-08-05 15:22:39 +03:00
Alexander Udalov
0925e1b497
Enable JVM IR for stdlib/reflect/test libraries
...
Changes in Gradle integration tests are needed because:
- in new-mpp-android, kotlin-stdlib-jdk8 is used, and JVM IR generates
JDK 8-specific bytecode (invokedynamic). D8 needs to be configured to
desugar it with source/target versions set to 1.8, otherwise it
reports an error.
- in AndroidExtensionsManyVariants and AndroidIcepickProject, D8 fails
with assertions enabled if AGP < 4.0.0 is used because of
https://issuetracker.google.com/issues/148661132 . The tests which use
old AGP versions are probably not relevant anymore anyway.
Changes in kotlin-stdlib-runtime-merged.txt are caused by a slightly
different generation scheme of collection subclasses in JVM IR, and are
harmless.
(Previous attempt was at 15e978dbd311c2ba78ec32b394c21acde9811ccb.)
2021-08-05 12:36:35 +02:00
Abduqodiri Qurbonzoda
29ac9b33ca
Add Duration.parse/parseIsoString samples
2021-08-05 10:32:33 +00:00
Abduqodiri Qurbonzoda
5004735366
Add Regex matchAt samples
2021-08-05 10:32:32 +00:00