Mikhael Bogdanov
0df6fddd0a
Extract utils from ReferenceSymbolTable
2018-08-01 12:29:28 +02:00
Mikhael Bogdanov
1bf3f4bda7
Extract ReferenceSymbolTable, support lazy type parameters
2018-08-01 12:29:27 +02:00
Mikhail Zarechenskiy
acd5b62148
Introduce limited constant conversions for Kotlin/Native
...
#KT-25320 Fixed
2018-07-29 04:32:32 +03:00
Mikhail Zarechenskiy
cff066f702
Use consistent descriptors as keys
...
This commit fixes exception during IR generation with enabled new inferece,
but the problem also can affect old inference.
We were using originalTypeArguments (`resolvedCall.typeArguments`)
that uses type parameters from *candidate* descriptor and were trying
to get value by key from `resolvedCall.resultingDescriptor.original`,
assuming that resolvedCall.resultingDescriptor.original equals to
resolvedCall.candidateDescriptor, which can be wrong
2018-07-24 20:14:19 +03:00
Mikhail Zarechenskiy
dddaa74dac
Propagate language version settings into IR type translator
2018-07-24 20:06:35 +03:00
Dmitry Petrov
65fe1101fd
Object references in object field initializers are 'GET_VAR this@Object'
2018-07-23 18:16:32 +03:00
Dmitry Petrov
ae0704af9c
Generate singleton references as GET_OBJECT in nested classes
2018-07-20 16:46:18 +03:00
Dmitry Petrov
779cae7db5
Adjust receivers for possibly synthetic properties access
...
Synthetic property accessors are treated as extension functions on Java
classes by the front-end. However, underlying Java accessor methods are
proper members.
2018-07-20 16:46:18 +03:00
Dmitry Petrov
99a71b9ecc
Desugar synthetic Java properties in psi2ir
2018-07-19 12:34:45 +03:00
Dmitry Petrov
4061a36506
Minor: reformat
2018-07-19 12:34:45 +03:00
Dmitry Petrov
b1d0a5e807
Fix delegated function body generation
2018-06-29 11:24:46 +03:00
Dmitry Petrov
d5286874bd
Fix circular dependency: TypeTranslator <-> ConstantValueGenerator
...
TODO proper DI?
2018-06-29 11:24:46 +03:00
Svyatoslav Scherbina
17312a305b
psi2ir: fix type for IrGetField(delegate) when generating delegation
...
(cherry picked from commit 7601cc2)
2018-06-29 11:24:46 +03:00
Svyatoslav Scherbina
56fdf2c735
psi2ir: fix null support in 'promoteToPrimitiveNumericType'
...
(cherry picked from commit 9b2a637)
2018-06-29 11:24:46 +03:00
Svyatoslav Scherbina
0b4d9513eb
psi2ir: fix generating fake override for property with type parameters
...
(cherry picked from commit 2051177)
2018-06-29 11:24:46 +03:00
Svyatoslav Scherbina
be413e4fab
psi2ir: don't generate accessor type parameter supertypes twice
...
(cherry picked from commit 22e6d5f)
2018-06-29 11:24:46 +03:00
Dmitry Petrov
a9d0e6d3da
IrTypes: generateAnnotationConstructorCall -> ConstantValueGenerator
2018-06-29 11:24:46 +03:00
Dmitry Petrov
3a11767fae
IrTypes: use proper scope for type parameters in stub generation
2018-06-29 11:24:46 +03:00
Svyatoslav Scherbina
f837537cb6
IrTypes: fix multiple issues in psi2ir
2018-06-29 11:24:46 +03:00
Dmitry Petrov
d1b6e8901a
Minor: IrTypes: fix after rebase
2018-06-29 11:24:46 +03:00
Dmitry Petrov
5b3947da11
IrTypes: Fix type arguments mapping for properties
2018-06-29 11:24:46 +03:00
Dmitry Petrov
7497372f65
IrTypes: IrProperty has no type of its own
...
Within the current scheme, type parameters for IrProperty become type
parameters for getter and setter (and, since only extension properties
can have type parameters, backing field's type can't depend on type
parameters; see also KT-24643). Either properties themselves can have
type parameters of their own (for the sake of representing the property
type), or properties don't have types and don't have type parameters.
2018-06-29 11:24:46 +03:00
Dmitry Petrov
ad65fa8c45
IrTypes: IrTypeParameter.superTypes can depend on type parameters
...
IrTypeParameter.superTypes can depend on type parameters and thus should
be initialized with type parameters in scope.
2018-06-29 11:24:46 +03:00
Dmitry Petrov
eb6f652763
IrTypes: IrClass.superTypes can depend on type parameters
...
IrClass.superTypes can depend on type parameters of a class and thus
should be initialized after type parameters are in put in scope.
2018-06-29 11:24:46 +03:00
Dmitry Petrov
8ae17ecbcb
IrTypes: IrFunction.returnType can depend on type parameters
...
Function return type can depend on function type parameters and should
be initialized with type parameters in scope.
2018-06-29 11:24:46 +03:00
Dmitry Petrov
847223683e
Minor: IrTypes: fix after rebase
2018-06-29 11:24:46 +03:00
Dmitry Petrov
0ffef64428
IrTypes: IrClass.superTypes, IrTypeParameter.superTypes
2018-06-29 11:24:46 +03:00
Dmitry Petrov
25a66916a6
IrTypes: minor: pass generator context where required
2018-06-29 11:24:46 +03:00
Dmitry Petrov
6649ef2740
IrTypes required to declare symbol
2018-06-29 11:24:46 +03:00
Dmitry Petrov
e8fe788df6
IrTypes: Implicit casts, take 1
...
Keep KotlinType along with IrTypes created by psi2ir.
2018-06-29 11:24:46 +03:00
Dmitry Petrov
54e9a2bb7b
IrTypes in psi2ir: generators (seem to be) complete
2018-06-29 11:24:46 +03:00
Dmitry Petrov
5f4f6ef863
IrTypes in psi2ir (work in progress)
2018-06-29 11:24:46 +03:00
Dmitry Petrov
326e4a160f
IrTypes in psi2ir (work in progress)
2018-06-29 11:24:46 +03:00
Dmitry Petrov
0e34ee5270
IrTypes: basic built-in types
2018-06-29 11:24:46 +03:00
Dmitry Petrov
c97697d7a9
psi2ir: translate types in StatementGenerator
...
TODO: DI
2018-06-29 11:24:46 +03:00
Dmitry Petrov
372f280578
DeclarationStubGenerator uses IrTypes
2018-06-29 11:24:46 +03:00
Dmitry Petrov
1353cf879c
IR: Drop obsolete builders (should be rewritten)
2018-06-29 11:24:46 +03:00
Dmitry Petrov
f66f3c1fed
psi2ir: cleanup TypeTranslator
2018-06-29 11:24:46 +03:00
Dmitry Petrov
c28877d23c
psi2ir: approximate types in TypeTranslator
2018-06-29 11:24:46 +03:00
Dmitry Petrov
1be28d6032
IrType -> IrDynamicType, IrErrorType, IrSimpleType
2018-06-29 11:24:46 +03:00
Dmitry Petrov
8999e5bfe6
psi2ir: support unsigned integer literals
...
NB in FE unsigned integer constants are now represented using signed
integer types (e.g., UInt constant actually holds an Int value).
So, in IR so far we also represent unsigned constant literals as
constant values of corresponding signed types, but with corresponding
unsigned type:
0xFFFF_FFFFu becomes 'CONST Int type=kotlin.UInt value=-1'
2018-06-21 12:32:00 +03:00
Dmitry Petrov
bf083314dd
Support 'when' with subject variable in psi2ir
2018-06-20 14:06:34 +03:00
Dmitry Petrov
ecd2709a11
psi2ir: type arguments for function references
2018-06-19 11:13:50 +03:00
Roman Artemev
17d71f1e46
[JS IR BE] Implement type check
...
* IrTypeOperator lowering
* runtime support
* refactoring
2018-06-14 18:40:06 +03:00
Mikhael Bogdanov
c72a3e08f7
Use field original in ir transformation
2018-06-06 10:34:50 +02:00
Dmitry Petrov
7b1b557250
psi2ir: Java annotations have no primary constructor
2018-05-31 10:09:31 +03:00
Dmitry Petrov
7a2bb79777
psi2ir: Use substituted 'hashCopy' for generated data class 'hashCopy'
2018-05-30 12:02:34 +03:00
Dmitry Petrov
cb301763f3
psi2ir: Fix implicit casts generation
...
Implicit cast from T to S is not required if
T <: S.makeNullable()
2018-05-30 12:02:34 +03:00
Dmitry Petrov
ab455d6572
IR: IrSimpleFunction.correspondingProperty: IrProperty?
...
Non-null for a property accessor, points to a corresponding property.
2018-05-25 09:40:51 +03:00
Dmitry Petrov
8dbfd85d26
psi2ir: Support class literals in annotations
2018-05-22 15:29:01 +03:00