Commit Graph

1223 Commits

Author SHA1 Message Date
Denis.Zharkov 9e6af52e1f Enable DefinitelyNotNullTypeParameters since 1.7
^KT-26245 In Progress
2021-08-31 15:41:13 +03:00
Dmitriy Novozhilov 40614507d3 [FE 1.0] Report warning about new IL operator resolve in initializers and default values
^KT-48361 Fixed
2021-08-23 16:20:41 +03:00
Mikhael Bogdanov 8ab546ba51 [FIR]: Pass special origins for local functions (named and anonymous) 2021-08-18 09:58:27 +00:00
Mikhael Bogdanov a5e59e09ee Copy methods for lambdas to DefaultImpls without receiver transformation
#KT-48230 Fixed
2021-08-18 09:58:27 +00:00
Denis.Zharkov 753ba99b04 FIR: Support enhanced types when checking if Java type is primitive 2021-08-17 21:38:01 +03:00
Ivan Kylchik bc9b2fd78b Uncomment some test cases in reflection test data for interpreter 2021-08-13 16:18:29 +03:00
Ivan Kylchik 23b315446f Support sam conversion in ir interpreter 2021-08-13 16:18:28 +03:00
Tianyu Geng 0026560bd7 FIR: substitute the whole lambda body after builder inference 2021-08-06 22:57:13 +03:00
Ivan Kylchik 4f15bd4817 Introduce a workaround in interpreter tests to make them pass
There is a problem with ranges and iterators. To work properly
they must be resolved firstly, before operator rangeTo.
2021-08-06 13:33:33 +03:00
Ivan Kylchik 6482abc602 Add CompileTimeCalculation annotation as helper to interpreter's tests 2021-08-06 13:33:25 +03:00
Ivan Kylchik fe74dd2689 Mute failing tests for IrInterpreterAfterPsi2IrTestGenerated
These tests are not passing because of the way how test system works.
To works properly interpreter needs source files. For now they are
passed as additional source files, but this method is not working
for old frontend, some conflicts appear in symbol table. Best way to
fix it is to wait until ir serialization.
2021-08-06 13:33:23 +03:00
Ivan Kylchik 295638b26e Allow to interpret non const properties of compile time object 2021-08-06 13:33:22 +03:00
Ivan Kylchik 1978bfcd85 Rewrite rendering of meta info for CHECK_NOT_NULL in interpreter's test
This way it is possible to unify rendering of elements built by psi2ir
and fir2ir.
2021-08-06 13:33:22 +03:00
Ivan Kylchik a9abf3b9b6 Drop redundant frames after some of exceptions in interpreter
Drop only last frame because it is pointing on function itself.
2021-08-06 13:33:21 +03:00
Ivan Kylchik 334d518aba Change the way of getting name and ordinal for enum entry in interpreter
For now IrProperty doesn't have corresponding overridden symbol, so
it must be taken from getter.
2021-08-06 13:33:20 +03:00
Ivan Kylchik 0c5fca31ec Support early return from constructor interpretation 2021-08-06 13:33:19 +03:00
Ivan Kylchik 96cc74a752 Fix enum interpretation in case when primary constructor is missing 2021-08-06 13:33:18 +03:00
Ivan Kylchik 668bb4fd71 Fix equals check in interpreter in case when object is wrapped as Proxy 2021-08-06 13:33:18 +03:00
Ivan Kylchik 4ad88679fd Unify logic of creation new ir tree nodes in interpreter 2021-08-06 13:33:17 +03:00
Ivan Kylchik 78475a5d9c Support interpretation of toArray for collections 2021-08-06 13:33:11 +03:00
Ivan Kylchik b10fdb919f Support cast to array with reified argument in interpreter 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 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 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 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
Dmitry Petrov ca5ebdc13c PSI2IR KT-44855 propagate smart cast information for property values 2021-07-29 21:41:50 +03:00
Mikhael Bogdanov 70e4472c99 Update Fir2IrTextTestGenerated tests 2021-07-29 19:45:56 +02:00
Mikhael Bogdanov a544d6948b Fix simpleUnaryOperators.kt test 2021-07-29 19:45:56 +02:00
Alexander Udalov b442e598d3 Fix test data of codegen tests for KT-47328 for 1.6 2021-07-29 19:45:55 +02:00
Mikhael Bogdanov 38fb5e16ef Update test affected by ApproximateIntegerLiteralTypesInReceiverPosition feature 2021-07-29 19:45:54 +02:00
Dmitriy Novozhilov 5354e4afe4 [FIR] Ignore some MPP backend tests
FIR doesn't support actual declarations in same module where expect
  declarations lay
2021-07-20 10:33:50 +03:00
Dmitry Petrov d41fc0b599 PSI2IR fix suspend conversion tests
- support chained suspend conversion + SAM conversion
- support suspend conversion in vararg elements
2021-07-17 09:10:19 +03:00
Mikhael Bogdanov a657e63dbb Update test affected by ForbidUsingExtensionPropertyTypeParameterInDelegate feature 2021-07-16 13:26:35 +00:00
Ilya Chernikov c83614386e [minor] FIR: (temporarily) fix testdata due to different builtins behavior 2021-07-16 02:24:45 +03:00
Ilya Chernikov 8f5d5c3ace FIR: Fixes in testdata after implementing FIR-specific IrBuiltIns 2021-07-16 02:24:29 +03:00
Dmitry Petrov 8ea4916d64 JVM_IR KT-47739 recognize fake override external stubs 2021-07-15 19:20:39 +03:00
pyos 3dc7b6c3ee IR: preserve argument evaluation order more carefully
1. receivers should be evaluated before named arguments;
 2. just because an argument has no side effects doesn't mean it is not
    affected by the other arguments' side effects - in that case it
    should still be evaluated in source order.

 #KT-47660 Fixed
2021-07-13 21:23:15 +03:00
Andrey Zinovyev b44785c24e [FIR] NOTHING_TO_OVERRIDE diagnostic 2021-07-08 18:13:47 +03:00
Alexander Udalov 113632c49c Psi2ir: load single-value Java array annotation arguments correctly
#KT-47467 Fixed
2021-07-05 21:49:10 +02:00
Roman Artemev d472b6c71c [Psi2Ir] Replace custom IrProperty node with common one 2021-07-02 19:58:31 +03:00
Dmitriy Novozhilov ae608ea67f [FE 1.0] Always create return value for CallInstruction
This fixes missing `USED_AS_EXPRESSION` recordings
^KT-47527 Fixed
2021-07-02 17:55:20 +03:00
Dmitriy Novozhilov f1bf3c0d5a [FIR] Don't duplicate annotations from enum entry to its initializer 2021-07-02 15:55:09 +03:00
Dmitry Petrov c132e1a39f PSI2IR fix flaky SOE 2021-07-02 13:10:04 +03:00