Mads Ager
9a93bb3f09
[IR] Add IR support for setting parameters.
...
Use it in the JVM_IR backend for default values code. The parameter
local has to be overwritten for the inliner to work.
2020-10-06 21:47:29 +02:00
Svyatoslav Kuzmich
162d9744ff
[JS IR] Fix export of constructor with default argument (KT-41275)
2020-09-24 14:58:14 +03:00
Dmitriy Novozhilov
d1fd1da56f
Rename Visibility to DescriptorVisibility
2020-09-04 11:07:42 +03:00
Igor Chevdar
ab54e43b00
[IR] Commonized SAM equals/hashCode builder
2020-08-31 12:01:29 +05:00
Alexander Udalov
a810dbb41b
IR: fix compiler warnings
2020-08-18 10:33:25 +02:00
Alexander Udalov
9961bd1fe1
IR: remove unneeded casts after making IrCall's symbol a simple function
2020-08-17 21:18:17 +02:00
Georgy Bronnikov
7f4df19dd1
JVM_IR: reorganize throw... functions in Symbols
2020-08-11 10:54:29 +03:00
Georgy Bronnikov
a2e9521ad5
Make DescriptorlessExternalPackageFragmentSymbol public
2020-07-30 11:24:07 +03:00
Alexander Udalov
77247deb23
IR: add module ir.tree.persistent, copy PIR implementation there
...
Use PersistentIrFactory in JS IR compiler entry points.
2020-07-28 19:04:43 +02:00
Alexander Udalov
12d2a02d22
JS IR: drop JsIrDeclarationBuilder
...
Move buildValueParameter back to JsIrBuilder, and use common IR builders
directly where buildFunction was called.
2020-07-28 12:05:24 +02:00
Alexander Udalov
d1dc938a5d
IR: use IrFactory in IR builders
2020-07-28 12:05:24 +02:00
Alexander Udalov
db4cbe7103
IR: use IrFactory in SymbolTable
2020-07-28 12:05:23 +02:00
Alexander Udalov
c6a127e87e
IR: introduce IrFactory
...
This is needed to refactor IrPersistingElementBase-based implementations
into another module, to use it in JS IR.
2020-07-28 12:05:23 +02:00
Alexander Udalov
65d3ae6253
JS IR: move declaration creation from IrBuilder to JsIrDeclarationBuilder
...
This is a temporary class until IrDeclarationFactory is there.
2020-07-22 22:40:08 +02:00
Alexander Udalov
c7f9dc1c40
IR: rename DeclarationFactory to InnerClassesSupport, move out of context
...
Methods of the common interface DeclarationFactory were only used in
lowerings in InnerClassesLowering, which were used in JVM and JS, not
Native. Therefore, it makes sense to have this as a separate interface
and pass its implementation to these lowerings directly, instead of
declaring it in the common context (which is not going to be implemented
in Native).
2020-07-20 22:26:11 +02:00
Alexander Udalov
181965f6e8
IR: inline namedIrModulePhase and namedIrFilePhase phase builders
...
Construct NamedCompilerPhase directly instead. Only use phase builders
where the code becomes easier to read.
2020-07-02 21:19:28 +02:00
Alexander Udalov
7997d4afd3
IR: do not use AnyNamedPhase where there is Context parameter
2020-07-02 21:19:27 +02:00
Roman Artemev
a0cccdf75c
[JS IR] Make backend work with new shared boxes
2020-06-19 12:23:15 +03:00
Mikhail Glukhikh
ab5cb13dae
Rename: DescriptorBasedIr -> ObsoleteDescriptorBasedAPI
2020-06-16 19:17:14 +03:00
Mikhail Glukhikh
cbbb497edf
Make descriptor-based API in ir:tree more granular
2020-06-16 19:17:12 +03:00
Mikhail Glukhikh
b05a1bb1a2
[IR] Extract IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment
2020-05-25 15:40:37 +03:00
Roman Artemev
8335ce8665
[IR] Fix to make K/N work
2020-05-12 14:29:53 +03:00
Dmitry Petrov
05cb0e8994
KNVE: support in JVM_IR and JS_IR
2020-04-20 20:07:52 +03:00
Roman Artemev
a9788f9506
[KLIB] Create an abstract class for module deserializer
...
- Introduce Ir-based Functional interface factory
- Switch from LazyIr to pure
- Use kotlin library to access raw bytes
- Link dirty files against IC cache and dependencies instead of LazyIr
- Move `DescriptorByIdSignatureFinder` from K/N to common
- Support inline-bodies only MODE
2020-04-14 11:12:08 +03:00
Georgy Bronnikov
166b506f63
IR: only require all type parameter references to be local with new inference
2020-04-13 14:34:57 +03:00
Roman Artemev
cef9ed1dae
[IR] Implement new IrSymbol API
...
- Add predicate whether symbol is PublicAPI
- Split symbols into 2 types (Public/Private)
- Fix special implementations
2020-02-14 18:22:15 +03:00
Anton Bannykh
1e96c3d21e
DCE-driven mode
...
:js:js.tests:jsIrTest works same as before
:js:js.tests:jsPirTest runs tests in DCE-driven mode
2020-02-06 21:03:41 +03:00
Anton Bannykh
f6d4ea469c
PrimaryConstructorLowering
2020-02-06 21:03:39 +03:00
Anton Bannykh
76ff30b86e
ObjectLowering
2020-02-06 21:03:39 +03:00
Anton Bannykh
64a5039ebe
Refactor default arguments lowering
2020-02-06 21:03:36 +03:00
Anton Bannykh
9327776706
Rewrite inner class lowerings
2020-02-06 21:03:36 +03:00
Anton Bannykh
0d1c6e08c3
Refactor LateinitLowering into DeclarationTransformer's and a BodyLoweringPass
2020-02-06 21:03:35 +03:00
Anton Bannykh
6e96e271ae
Make InitializersLowering a BodyLoweringPass and add a InitializersCleanupLowering
2020-02-06 21:03:35 +03:00
Anton Bannykh
3d726fe5a2
Make InlineClassDeclarationLowering a DeclarationTransformer
2020-02-06 21:03:34 +03:00
Anton Bannykh
20dc3ccdb8
New mechanism for mappings between old and produced declarations
2020-02-06 21:03:33 +03:00
Alexander Udalov
e42a4b2fac
IR: extract JvmPropertiesLowering out of PropertiesLowering
2020-02-04 11:43:23 +01:00
Alexander Udalov
d27bb76fd0
Remove dependency of serialization.js on cli
...
To break up compilation dependency of JS IR/WASM backends on JVM
backend.
#KT-35854 Fixed
2020-01-29 18:03:22 +01:00
Svyatoslav Kuzmich
fbf71be30c
[JS IR BE] Support mode of linking multiple klibs without .kt files
2020-01-14 18:00:29 +03:00
Alexander Gorshenev
dc8240c24e
Expect/actual support in klibs under -Xklib-mpp
2019-12-18 19:29:56 +03:00
Georgy Bronnikov
08aeed3b46
IR: do not use lazyWrapper for Ir.Symbols
...
The reason for switching from lazyWrapper to SymbolTable itself is that
(at least in JS_IR) some of those lazily created structures could later
be deserialized, which created conflicts.
2019-12-04 16:05:53 +03:00
Georgy Bronnikov
1ed23d7c54
IR: reorganize IrProvider handling
...
Make DeclarationStubGenerator a subclass of IrProvider,
anticipating deserialization of IR structures for JVM_IR backend.
2019-11-27 20:02:27 +03:00
Alexander Udalov
608449f41d
IR: introduce StubGeneratorExtensions for ExternalDependenciesGenerator
...
This is a refactoring to simplify the API of
ExternalDependenciesGenerator and to constrain future additions of
platform-specific stub generator extensions.
2019-11-20 15:16:57 +01:00
Georgy Bronnikov
c5159d9cbe
IR: Add UniqId to IrSymbol
2019-11-13 20:07:57 +03:00
Alexander Udalov
9a55f418fa
IR: extract StaticInitializersLowering out of InitializersLowering
...
And use it in JVM backend only. Also remove unneeded
`patchDeclarationParents` call.
2019-11-12 19:21:46 +01:00
Roman Artemev
a343a57207
[IR] Refactor ir infrastructure
...
- Remove range-based uniq id indexes using to link built ins
- Limit KotlinType usages, replace them with corresponding IrType
2019-11-12 20:45:11 +03:00
Roman Artemev
78b29349c9
Fix lateinit isInitialized check in multi-file case
2019-10-31 14:45:15 +03:00
Vitaliy.Tikhonov
240abdb750
[JS IR BE] update current lowerings for IrScript
2019-10-10 12:52:05 +03:00
Georgy Bronnikov
2e3428bbe7
JVM_IR: incorporate validation into jvmPhases
2019-10-02 14:56:54 +03:00
Alexander Gorshenev
c227c13799
Commonizing klib metadata between native and js
2019-10-01 17:38:57 +03:00
Georgy Bronnikov
7e9cfbc91a
IR: use toLowerCaseAsciiOnly
2019-10-01 16:43:23 +03:00