Dmitry Petrov
0f1f354ba6
KT-16486 Strange IR for delegated members
...
Delegated implementations should refer to delegate field:
$this: GET_FIELD <delegate_field> ...
receiver: <this_for_containing_class>
2017-03-01 09:25:38 +03:00
Alexander Udalov
12b48f86e7
Do not load error classes in ReflectionTypes
...
Previously ReflectionTypes.find returned an error class in case a class
is not found in the module dependencies. The problem with this approach
is that each call site should call ErrorUtils.isError on the result and
report an error if needed, in order to stop this type from reaching the
codegen, which can't handle error types.
Now we create a MockClassDescriptor instance instead. It's not an error
class, so it'll be handled correctly in the codegen. Also its scope is
empty and errors are reported on any non-trivial usage (see
MissingDependencyClassChecker), so this approach is not worse than error
classes
#KT-16484 Fixed
2017-02-28 20:19:58 +03:00
Ilya Matveev
0759ff7bc2
Override acceptChildren method in IrSetterCallImpl
2017-02-07 18:20:33 +03:00
Alexander Udalov
e58baa51ae
Rename DoubleColonLHS.Expression.isObject -> isObjectQualifier
2017-02-06 19:39:15 +03:00
Dmitry Petrov
ee9a174c1f
KT-7897 Do not require to call enum constructor for each entry if all parameters have default values
...
Do not report an error on enum entry without initializer if all parameters have default values
(error is still reported if there is no such constructor, or if the constructor call is ambiguous).
Record resolved call on KtEnumEntry.
NB is the enum entry has a corresponding subclass, we still have to generate the "default" constructor call,
because FE doesn't know about the platform-specific representation of that class and its constructors.
See also KT-14097, KT-15900
2017-01-24 16:59:47 +03:00
Alexander Udalov
f1cd2ee6fd
Introduce PropertyDescriptor.isDelegated, write new flag to metadata
...
#KT-8384 In Progress
2017-01-23 12:25:34 +03:00
Dmitry Petrov
b9f9894310
KT-15677 KT-15775
...
Update parser & descriptor renderer to handle parenthesized types and function types properly.
Resolve annotations in parenthesized types.
AnnotationsImpl.isEmpty() returned false for targeted annotations only
(e.g., 'fun @receiver:Ann C?.foo()').
Properly keep track of targeted annotations.
2017-01-19 09:53:17 +03:00
Mikhael Bogdanov
0a363fd1a5
Introduced test flag: JVM8_TARGET_WITH_DEFAULTS
2017-01-13 13:52:56 +01:00
Svyatoslav Scherbina
d9023bdf70
backend: move some JVM lowering to common
2017-01-12 11:56:32 +07:00
Svyatoslav Scherbina
5a5f4fc224
backend: extract common lowering utils
2017-01-12 11:56:31 +07:00
Svyatoslav Scherbina
f85538129d
backend: introduce common backend context
2017-01-12 11:56:30 +07:00
Svyatoslav Scherbina
2e88dd0675
backend: fix minor bug in LocalFunctionsLowering
...
extension receiver parameter should be remapped too
(e.g. to support lambda with receiver)
2017-01-12 11:56:29 +07:00
Svyatoslav Scherbina
e6c9a709b2
backend: fix minor bug in SharedVariablesLowering
2017-01-12 11:56:28 +07:00
Svyatoslav Scherbina
bf3b5281a9
ir.tree: add trivial building utils
2017-01-11 14:54:13 +07:00
Svyatoslav Scherbina
d0a166ffec
psi2ir: move IR building utils to ir.tree
2017-01-11 14:54:12 +07:00
Svyatoslav Scherbina
feb0dee563
psi2ir: untie IR building utils from PSI
2017-01-11 14:54:11 +07:00
Svyatoslav Scherbina
4c3fb9a21f
psi2ir: improve backing field usage generation
...
Also update corresponding tests data.
2017-01-11 14:54:10 +07:00
Svyatoslav Scherbina
0189faec2e
ir.tree: fix IrTry.transformChildren:
...
transform `finallyExpression` too.
2017-01-11 14:54:09 +07:00
Alexander Udalov
75a4958144
Introduce ClassDescriptor.getSealedSubclasses
...
#KT-12795 In Progress
2017-01-10 12:23:25 +03:00
Dmitry Petrov
d9271b54fb
Fix IR generation: temporary variable in 'hashCode()' for data class should be 'var'
2016-12-23 10:44:14 +03:00
Stanislav Erokhin
42440f50dc
Remove soft keyword coroutine & isCoroutine from ValueParameterDescriptor.
2016-12-15 23:57:56 +03:00
Stanislav Erokhin
59efedf610
Rename platform to header.
2016-12-13 18:00:00 +03:00
Mikhail Zarechenskiy
ef662a5679
Declare intrinsic rem operator for primitives
2016-12-13 16:33:33 +03:00
Alexey Andreev
ba2443bcb3
Add external property to class and property descriptors
2016-12-08 15:41:38 +03:00
Mikhail Zarechenskiy
0134b8819b
Optimize const vals by inlining them at use sites
...
#KT-11734 Fixed
#KT-13570 Fixed
2016-12-05 22:11:33 +03:00
Alexander Udalov
ce9691cd2b
Support platform/impl modifiers for properties
...
Do not allow platform properties to have backing fields, initializers, be
delegated, lateinit or const, or have accessors with bodies
2016-11-25 20:50:18 +03:00
Alexander Udalov
6e2ef9b1d2
Add platform/impl soft keywords, add isPlatform/isImpl to MemberDescriptor
2016-11-25 20:50:17 +03:00
Michael Bogdanov
fd2655fd4a
Bridge support
2016-10-27 16:43:02 +03:00
Michael Bogdanov
7989a0ff25
Use original descriptor on delegating to DefaultImpls
2016-10-27 16:43:01 +03:00
Michael Bogdanov
4cbc5cc958
Remove variables from frame on block leaving
2016-10-27 16:43:00 +03:00
Alexander Udalov
cdf6567375
Drop TypeConstructor.getAnnotations(), uninherit TypeConstructor from Annotated
...
The method was unused on TypeConstructor instances, and almost all
implementations returned EMPTY anyway
2016-10-24 15:30:38 +03:00
Dmitry Petrov
4fc135709e
Inner classes lowering: remap old constructor parameters.
2016-10-21 10:05:41 +03:00
Dmitry Petrov
7dce1f438f
Inner classes lowering.
2016-10-19 19:13:40 +03:00
Dmitry Petrov
b5d81d8e31
Preparations to push to master branch.
...
Introduce tests-ir-jvm module (for IR-based JVM BE tests).
2016-10-18 09:15:19 +03:00
Michael Bogdanov
555f3e903e
Rebase fixes
2016-10-18 09:10:20 +03:00
Michael Bogdanov
406fbfdba8
Synthetic accessors support
2016-10-18 09:10:20 +03:00
Michael Bogdanov
20c4f47253
Properly lower ImplicitClassReceiver
2016-10-18 09:10:19 +03:00
Dmitry Petrov
a93f929615
Minor: IrElementVisitorVoid#visitGetVariable -> visitGetValue
2016-10-18 09:10:19 +03:00
Dmitry Petrov
703110c0e2
Update after rebase on master.
2016-10-18 09:10:18 +03:00
Dmitry Petrov
6c9b8792c7
Minor: cleanup, use PropertyDescriptorImpl.initialize(...)
2016-10-18 09:10:18 +03:00
Dmitry Petrov
8d7c201339
Refactor special descriptors.
2016-10-18 09:10:17 +03:00
Dmitry Petrov
9b1e87ec84
Minor fixes.
2016-10-18 09:10:17 +03:00
Dmitry Petrov
a96aac090e
Shared variables lowering: skip irrelevant variables.
2016-10-18 09:10:16 +03:00
Dmitry Petrov
fb5298237a
Shared variables lowering.
2016-10-18 09:10:16 +03:00
Dmitry Petrov
fedfd3de16
Suggest names for captured receivers.
2016-10-18 09:10:15 +03:00
Michael Bogdanov
1658e110f2
Support default values for annotation properties
2016-10-18 09:10:15 +03:00
Michael Bogdanov
4b6ddc4a9d
Initial annotation support
2016-10-18 09:10:15 +03:00
Michael Bogdanov
0bc3cc5e20
Object, enum processing on delegation generation
2016-10-18 09:10:14 +03:00
Michael Bogdanov
289cc8fed7
Added extension receiver procesing on interface lowering
2016-10-18 09:10:14 +03:00
Michael Bogdanov
f0d09288a8
Initial KCallableNameProperty support
2016-10-18 09:10:13 +03:00