Steven Schäfer
c16b548dff
JVM IR: Don't produce annotations on builtin stub, toArray, and bridge methods
2020-07-27 17:02:24 +02:00
Dmitry Petrov
e2a4ca10d6
JVM_IR: fix inner class attributes for private class in interface
2020-07-23 19:13:28 +03:00
Svyatoslav Kuzmich
4a803e9d2f
[JS IR] Support object declaration export
...
Fixes KT-39117 and KT-39367
2020-07-23 08:21:59 +03: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
d3a34a8898
Psi2Ir: somewhat simplify Psi2IrTranslator API
...
Inline some methods only used once, deduplicate usages, rearrange
parameters, etc.
2020-07-22 22:38:21 +02:00
Alexander Udalov
241f82c70f
IR: avoid storing unnecessary fields in IrPropertyImpl
2020-07-22 22:38:21 +02:00
Alexander Udalov
3f06f8a6ba
IR: avoid storing unnecessary fields in IrFunctionImpl
2020-07-22 22:38:20 +02:00
Alexander Udalov
517c3e1020
IR: introduce IrFakeOverrideFunction, IrFakeOverrideProperty
...
Use them instead of the implementations. This will allow to refactor
creation to a factory and allow to use other implementations in the
future.
2020-07-22 22:38:20 +02:00
Alexander Udalov
ca5eb40fa5
IR: minor, avoid usages of IrBlockBodyImpl/IrExpressionBodyImpl
2020-07-22 22:38:20 +02:00
Mark Punzalan
174576af61
ForLoopsLowering: Handle Sequence<*>.withIndex().
2020-07-22 22:32:29 +02:00
Mark Punzalan
132960a695
ForLoopsLowering: Eliminate use of @ObsoleteDescriptorBasedAPI.
2020-07-22 22:32:29 +02:00
Mark Punzalan
b1ce21bc55
ForLoopsLowering: Reduce unnecessary temporary variables for the
...
"checked step" (check for a positive step arg) and "negated step"
(negate the step arg when the nested step is negative).
2020-07-22 22:32:29 +02:00
Mark Punzalan
291d62f653
ForLoopsLowering: Move handlers to sub-package and separate files.
2020-07-22 22:32:29 +02:00
Dmitry Petrov
1272162a7f
JVM_IR: generate "safe" names for functions in init blocks
2020-07-22 19:49:48 +03:00
Alexander Gorshenev
c076d81f0c
[IR FAKE OVERRIDES] Properly account for outer class type parameters
2020-07-22 12:02:51 +03:00
Pavel Kirpichenkov
1ef17c6f3a
Drop isErrorTypeAllowed flag from type system context
...
The flag was used exclusively during calculation of common super type.
This change relies on assumption, that common super type is
NOT calculated in IR type system context.
2020-07-22 11:41:42 +03:00
Denis Zharkov
41bd013796
Fix incorrect usages of @NotNull type parameters in project sources
...
^KT-36770 In progress
2020-07-22 10:16:14 +03:00
Dmitry Petrov
e84339a0d3
JVM_IR: fields for deprecated enum entries have ACC_DEPRECATED flag
...
'Deprecated' annotation can't be applied to field itself.
2020-07-21 22:25:44 +03:00
Roman Artemev
edab3e3ba9
[PLUGIN API] Add referenceTypeAlias API to IrPluginContext
...
- attempt to fix KT-40193
2020-07-21 18:38:33 +03:00
Roman Artemev
c4b4912a71
Revert "[PLUGIN API] Make referenceClass resolve type aliases too"
2020-07-21 18:38:32 +03:00
Anton Bannykh
cb15570d75
[JS IR BE] Fix validation errors (duplicate nodes and incorrect parent)
2020-07-21 18:25:17 +03:00
Roman Artemev
d7a0dbfae8
[PLUGIN API] Make referenceClass resolve type aliases too
...
- fix KT-40193
2020-07-21 15:36:31 +03:00
Roman Artemev
8c4930da2e
[KLIB] Drop API which is no longer used
2020-07-21 13:15:35 +03:00
Roman Artemev
bb20e4759b
[KLIB] Use queue to track classes required fake override resolve
...
- Avoid module visiting to prevent lazy bodies loading
2020-07-21 13:15:35 +03:00
Steven Schäfer
d62a6a2631
JVM IR: Do not create accessors for enum entry constructors
2020-07-20 22:37:49 +02:00
Alexander Udalov
71730696b2
JVM IR: rename JvmDeclarationFactory -> JvmCachedDeclarations
2020-07-20 22:26:11 +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
cf884fb048
IR: remove JVM-specific methods from DeclarationFactory
2020-07-20 22:26:11 +02:00
Dmitry Petrov
2b9606becf
JVM_IR: field for suspend main parameter is synthetic
2020-07-20 20:04:31 +03:00
Dmitry Petrov
6bc44a366a
JVM_IR: fields for suspend lambda parameters are synthetic
2020-07-20 20:04:31 +03:00
Dmitry Petrov
fa75518bd7
JVM_IR: don't skip nullability annotations on private fields
...
Unfortunately, some annotation processors rely on those annotations.
2020-07-20 20:04:31 +03:00
Jim Sproch
a4a398239b
Fallback to fileEntry provided by irFile
2020-07-18 11:16:09 +03:00
Georgy Bronnikov
c901e82a55
IR: add IrSimpleFunction.isInfix
2020-07-18 11:03:33 +03:00
Jim Sproch
ccbb2eaba9
Make linker visible to compiler plugins
2020-07-17 21:18:07 +03:00
Igor Chevdar
8bbbee8ffd
[IR] Supported IrFunctionExpression in ClosureAnnotator
...
It may be encountered during local classes extraction from inline lambdas
2020-07-16 19:23:02 +05:00
Alexander Udalov
c9fdef8233
IR: use buildField where possible
2020-07-16 16:09:31 +02:00
Alexander Udalov
2d723f1c51
IR: use buildClass where possible
2020-07-16 16:09:31 +02:00
Alexander Udalov
5b1193407a
IR: use buildConstructor where possible
2020-07-16 16:09:31 +02:00
Alexander Udalov
6aa09f61d4
IR: use buildFun where possible
2020-07-16 16:09:30 +02:00
Alexander Udalov
39e38c7049
IR: introduce buildVariable, use where possible
2020-07-16 16:09:30 +02:00
Alexander Udalov
c3560e5854
IR: use buildTypeParameter, minor cleanup
2020-07-16 16:09:30 +02:00
Alexander Udalov
4b5464c6cc
IR: introduce buildReceiverParameter, use where possible
2020-07-16 16:09:30 +02:00
Alexander Udalov
b36a6114aa
IR: use buildValueParameter where possible
2020-07-16 16:09:29 +02:00
Svyatoslav Kuzmich
609f0ca9bc
[JS IR] .d.ts generation for module systems
...
Support .d.ts generation for UMD, AMD, CommonJS module kinds in
addition to existing "plain" module kind.
2020-07-16 14:02:06 +03:00
Roman Artemev
cd9f59325e
[KLIB] Fix deserialization of anonymous classes
...
In case of initializing property or function with anonymous object the
object is being exposed outside its field/function's scope and
accessible on previous level. In this case in `declarations only` mode
we have unbound symbols. Fix is to force body/initializer loading in
such cases.
Make sure it is deserialized in `declarations'only` mode too.
- Fix KT-40216
- Add test
2020-07-15 18:23:29 +03:00
Roman Artemev
d31de6c8de
[Psi2IR] Improve assertion message
2020-07-15 18:23:28 +03:00
Zalim Bashorov
340512e27a
[KJS] Throw exception on recursive types provided to typeOf and provide proper support later within KT-40173
...
#KT-38140 fixed
2020-07-14 14:14:13 +03:00
Kristoffer Andersen
8d79a6ae03
[JVM IR] Copy inline class constructor annotations
2020-07-13 11:50:34 +03:00
Steven Schäfer
097e0fb46c
JVM IR: Mangle delegated properties with inline class type (KT-40125)
2020-07-10 17:06:44 +02:00
Georgy Bronnikov
a97d718de8
IR: remove a KotlinType use from Ir.kt
2020-07-10 17:35:30 +03:00