Commit Graph

26436 Commits

Author SHA1 Message Date
Svyatoslav Kuzmich 1b8df45bfe [JS IR] Support generating both IR and pre-IR libraries
Remove all previous -Xir options

Add:
 -Xir-produce-klib-dir
 -Xir-produce-klib-file
 -Xir-produce-js
 -Xir-only
2019-11-01 19:42:05 +03:00
victor.petukhov 62d204f4d6 Support trailing comma
^KT-34743 Fixed
2019-11-01 19:40:20 +03:00
Ilmir Usmanov 8c079706a5 Add tests for case when result of tail-call suspend function returning
Unit is not Unit.
 #KT-34703 Fixed
2019-11-01 17:48:06 +03:00
Ilmir Usmanov 04441da095 Replace result on stack with Unit if callee is suspend function
returning Unit. Because on resume the result might be not a Unit if
the callee is tail-call and its callee return something different from
Unit and suspends.
Luckily, we generated ReturnsUnitMarker on such calls in all release
versions since 1.3. So, even if the code is inline and generated by
older versions, it will still work correctly.
The only version of the compiler, which does not generate the markers,
is 1.3.60-eap-76, because we did not generate the markers since
cc06798e2c. But I think, this is not
an issue.
 #KT-34703
2019-11-01 17:48:02 +03:00
Dmitry Petrov 1e63101a27 FIR2IR: fix testData after rebase 2019-11-01 14:55:12 +03:00
Dmitry Petrov 6cde86139c IR: isFakeOverride: fix testData after rebase 2019-11-01 14:55:11 +03:00
Dmitry Petrov 35b9f43608 IR: use isFakeOverride
(and see what breaks)
2019-11-01 14:55:11 +03:00
Dmitry Petrov f79909d724 IR serialization: isFakeOverride in proto
NB It's not clear yet if we actually want to serialize fake overrides
or generate and resolve them on deserialization.
2019-11-01 14:55:11 +03:00
Dmitry Petrov 5c390d9426 IR serialization: IrField.isFakeOverride 2019-11-01 14:55:11 +03:00
Dmitry Petrov ce96053940 JVM_IR: IrField.isFakeOverride 2019-11-01 14:55:11 +03:00
Dmitry Petrov 0b26f32674 JS_IR: IrField.isFakeOverride 2019-11-01 14:55:11 +03:00
Dmitry Petrov 6101f00611 IR BE common: IrField.isFakeOverride 2019-11-01 14:55:10 +03:00
Dmitry Petrov 3fcdbf2c88 FIR2IR: IrField.isFakeOverride 2019-11-01 14:55:10 +03:00
Dmitry Petrov edaa42ea46 IR: IrField.isFakeOverride 2019-11-01 14:55:10 +03:00
Dmitry Petrov e9337ec8f2 IR serialization: IrProperty.isFakeOverride 2019-11-01 14:55:10 +03:00
Dmitry Petrov da63d16c33 IR BE common: IrProperty.isFakeOverride 2019-11-01 14:55:10 +03:00
Dmitry Petrov 8b8b96bff4 FIR2IR: IrProperty.isFakeOverride 2019-11-01 14:55:10 +03:00
Dmitry Petrov 82c527c2cc IR: IrProperty.isFakeOverride 2019-11-01 14:55:10 +03:00
Dmitry Petrov 2682057767 IR tests: update testData for IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitry Petrov 65e6a84831 IR tests: check IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitry Petrov 46745adfd9 FIR2IR: IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitry Petrov d23f13e3dc IR serialization: IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitry Petrov 5831b08a6e JVM_IR: IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitry Petrov f24278941d JS_IR: IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitry Petrov b36d8f556a IR BE common: IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitry Petrov 843fb88459 IR: IrSimpleFunction.isFakeOverride 2019-11-01 14:55:09 +03:00
Dmitriy Novozhilov 01f09af608 [FIR] Fix generated name for FirErrorNameReferenceImpl 2019-11-01 13:24:57 +03:00
Dmitriy Novozhilov 829227255d [FIR] Add rendering of error numbers per file/package/module in HTML dump 2019-11-01 13:24:57 +03:00
Dmitriy Novozhilov 528e538b2a [FIR] Remove duplicating diagnostics from error function calls 2019-11-01 13:24:57 +03:00
Ilya Matveev 955300dd34 Deserializer: Fix initialization of private top-levels
Consider a file with only private top-level properties compiled into
a klib. If this klib is deserialized with deserializationStrategy.ALL
(e.g. if this library if passed using the -Xinclude flag),
initializers of these properties will not be generated  in a final
binary.

This patch fixes this error by unconditionally adding IrFiles into
deserialization queue if deserializationStrategy.ALL is specified.

Issue #KT-34722 fixed
2019-11-01 12:02:59 +03:00
Dmitriy Novozhilov 073578bf1c [FIR] Fix Fir2Ir testdata broken in a501e514 2019-11-01 11:07:16 +03:00
Dmitriy Novozhilov 098616ac76 [FIR] Add dependency of :descriptors.runtime to :fir2ir module 2019-11-01 11:06:33 +03:00
Dmitriy Novozhilov 1b44566e6f [FIR] Fix compilation error in lightTree module
There was a extra comma that I missed
2019-11-01 11:06:31 +03:00
Dmitriy Novozhilov 27c70eedd9 Enable MixedNamedArgumentsInTheirOwnPosition feature in compiler module 2019-11-01 10:25:37 +03:00
Dmitriy Novozhilov 09fa15c22b [FIR] Support old FE-like multifile tests 2019-11-01 10:25:36 +03:00
Dmitriy Novozhilov 65eed24dbb [FIR] Add diagnostics reporting to FIR resolve tests 2019-11-01 10:25:36 +03:00
Dmitriy Novozhilov 38bb9f78d6 [FIR] Add diagnostic collector component that collects diagnostics from error nodes 2019-11-01 10:25:36 +03:00
Dmitriy Novozhilov 0428916d3c [FIR] Add error nodes to default transformer and visitors 2019-11-01 10:25:35 +03:00
Dmitriy Novozhilov a501e514c9 [FIR] Add meaningful diagnostics in all error elements 2019-11-01 10:25:35 +03:00
Dmitriy Novozhilov 7503449e8d [FIR] Add kind to diagnostics reported by RawFirBuilder 2019-11-01 10:25:35 +03:00
Dmitriy Novozhilov 8b5f568a15 [FIR] Introduce FirDiagnostic in FIR instead of errorReason 2019-11-01 10:25:34 +03:00
Dmitriy Novozhilov 8eabe08e7a [FIR] Move components into separate package 2019-11-01 10:25:34 +03:00
Dmitriy Novozhilov f72fa87583 [FIR] Add old FE-like diagnostic tests 2019-11-01 10:25:33 +03:00
Dmitriy Novozhilov 8b900624d3 [FIR] Add bridge for diagnostics from old FE to ConeDiagnostic 2019-11-01 10:25:33 +03:00
Dmitriy Novozhilov 9b77dec99c [FIR] Add prototype of diagnostic collector 2019-11-01 10:25:33 +03:00
Mikhael Bogdanov 8e2943ae2a Temporary increase timeout to avoid NPE 2019-10-31 13:15:51 +01:00
Ilya Matveev 7c4033f0bf Deserializer: Fix initialization order
Top-level initializers must be deserialized in the same order they
where in the original source file. Before this patch this rule might
be violated. Consider the following case:

// lib1.kt
val a = 5
val b = a * 5

// lib2.kt
fun foo() = println(b)

Compile both files into libraries and then link an application
against them. During deserialization of lib2 'b' will be added
to the deserialization queue of lib1. After that we will add 'a'
to this queue too. Thus 'b' and 'a' will be in a wrong order
in this queue resulting in a wrong order of corresponding
top-level initializers in a final executable.

This patch fixes this issue by adding all top-level initializers
to a deserialization queue before all other declarations.
2019-10-31 14:51:56 +03:00
Roman Artemev 78b29349c9 Fix lateinit isInitialized check in multi-file case 2019-10-31 14:45:15 +03:00
Mikhail Zarechenskiy b30a9e1d3e [NI] Remove capturing from supertypes during computation of CST 2019-10-31 11:32:05 +03:00
Mikhail Zarechenskiy e8907c078d [NI] Don't recreate subtyping context every time 2019-10-31 11:32:04 +03:00