Alexander Udalov
e4cd7cdbcf
IR: remove unused code, cleanup
2020-08-06 17:08:04 +02:00
Alexander Udalov
b30b2e0179
IR: minor, render duplicate IR node in checker
2020-08-06 17:08:04 +02:00
Alexander Udalov
8db1c3611b
IR: introduce abstract class IrDeclarationBase
...
The main purpose of this class is to improve performance of IR visitors
and transformers. `IrElementVisitor.visitDeclaration` now takes
IrDeclarationBase as a parameter, and therefore the call to `accept`
there is now a virtual class call, instead of an interface call.
2020-08-06 17:08:04 +02:00
Alexander Udalov
771e7574f4
IR: make subtypes of IrDeclaration classes
2020-08-06 17:08:03 +02:00
Alexander Udalov
3cecf81176
IR: transform base classes of lazy IR to interfaces
2020-08-06 17:08:02 +02:00
Alexander Udalov
b02653a524
IR: remove base classes IrDeclarationBase and IrFunctionBase
...
They introduce a diamond class hierarchy which prevents IR element
hierarchy from being transformed to classes.
2020-08-06 16:46:26 +02:00
Alexander Udalov
9152df4702
PIR: transform base implementation classes to interfaces
...
Unfortunately this requires a lot of boilerplate, but is a requirement
for transforming the main IR element hierarchy interfaces
(IrDeclaration, IrClass, ...) to classes.
2020-08-06 16:46:26 +02:00
Sergey Igushkin
f6356199d3
Fix typealias usage nullability and annotations lost in deserialization
...
Issue #KT-40824 Fixed
2020-08-06 15:46:54 +04:00
Mikhail Zarechenskiy
2eb17df962
Do not compute SamType too eagerly as it can force member resolution
...
Internally, during creation of `SamType` the compiler checks if a
parameter is really can be used as a SAM, so this check involves
lookup for abstract members, which can force additional computation of
member scopes. This is totally fine for BE but it can be dangerous
for light classes computation when not all scopes are processed.
Note that this issue appeared quite recently after 16f175612e
#KT-40869 Fixed
2020-08-06 09:20:56 +03:00
Pavel Kirpichenkov
ffc3d8bdfc
Introduce @FrontendInternals annotation
...
#KT-39643
2020-08-05 21:44:47 +03:00
Ilmir Usmanov
68342a1f72
Initialize fake inliner variables on resume path
...
Otherwise, this will cause R8 to complain.
2020-08-05 19:47:55 +02:00
Ilmir Usmanov
bb5a99ec18
Do not put $completion to LVT if is dead
2020-08-05 19:47:54 +02:00
Florian Kistner
c792092410
Bump fastutil version to match 203
2020-08-05 19:36:42 +02:00
Sergey Igushkin
093d4b3108
Revert "Fix typealias usage nullability and annotations lost in deserialization"
...
This reverts commit 070848a1
2020-08-05 20:17:49 +04:00
Jinseong Jeon
b57794d96e
IR util: IrExpression.isSafeToUseWithoutCopying
2020-08-05 17:07:27 +03:00
Jinseong Jeon
7ef1c74bbf
FIR2IR: apply adapted reference conversion to coercion-to-unit
2020-08-05 17:07:27 +03:00
Mikhail Glukhikh
5f80bfd5d4
[FIR] Don't report UNINITIALIZED_VARIABLE on lateinit local variable
2020-08-05 16:47:51 +03:00
Mikhail Glukhikh
fc874e72b1
[FIR2IR] Initialize components a bit earlier to prevent lateinit errors
2020-08-05 12:11:34 +03:00
Mikhail Glukhikh
17b289fa00
[FIR] Code cleanup: get rid of FirClass.buildUseSiteMemberScope()
2020-08-05 12:11:34 +03:00
Mikhail Glukhikh
8bb5488a26
[FIR] look at intersectionOverride during override processing
...
This commit fixes some BB tests broken by previous commit
2020-08-05 12:11:34 +03:00
Mikhail Glukhikh
f1356a809e
Fir2IrLazySimpleFunction: generate overridden symbols via FirTypeScope
2020-08-05 12:11:33 +03:00
Nick
f15f5bccc8
[FIR] Add more diagnostic messages
2020-08-05 10:41:06 +03:00
Victor Petukhov
f45de9d8fb
NI: approximate not top-level captured types during code generation
...
^KT-40693 Fixed
2020-08-05 10:36:36 +03:00
Mikhail Zarechenskiy
a45f73867a
Add compatibility resolve when SAM conversion was applied partially
...
#KT-40646 Fixed
2020-08-05 00:03:33 +03:00
Sergey Igushkin
070848a1c1
Fix typealias usage nullability and annotations lost in deserialization
...
This fixes a regression introduced by the commit 4b0da0688a which made
deserializer expand typealiases but didn't take nullability and use site
annotations into account.
Issue #KT-40824 Fixed
2020-08-05 00:19:52 +04:00
Nick
ec4f04095c
[FIR] Rearrange FirErrors.kt
2020-08-04 22:40:09 +03:00
Nick
207027b84c
[FIR] Fix light tree's supertype FirDelegatedConstructorCall source
2020-08-04 22:37:43 +03:00
Nick
a59cedcd39
[FIR] Fix non-fake sources for constructor delegates
2020-08-04 22:37:42 +03:00
Nick
f74eb07203
[FIR] Fix incorrect diagnostic behaviour + several enum diagnostics
2020-08-04 22:28:49 +03:00
Nick
b76f757d47
[FIR] Add diagnostic for missing primary constructor
2020-08-04 22:28:49 +03:00
Nick
0f213e58db
[FIR] Add diagnostic for primary constructor not called
2020-08-04 22:28:48 +03:00
Nick
bb0e1b7390
[FIR] Add diagnostic for constructor delegation cycles
2020-08-04 22:28:48 +03:00
Mikhail Glukhikh
e841b3a77b
[FIR] Add diagnostic collection to KotlinToJVMBytecodeCompiler
2020-08-04 22:27:18 +03:00
Mikhail Glukhikh
9c3b8484b9
[FIR TEST] Add CLI test with should-be-error (not yet)
2020-08-04 22:27:18 +03:00
Ilmir Usmanov
824991a9dd
Minor. Add tests.
2020-08-04 15:42:38 +02:00
Ilmir Usmanov
bbd4c21595
Cleanup spilled variables
...
#KT-16222
2020-08-04 15:42:37 +02:00
Ilmir Usmanov
999b41068b
Minor. Refactor variables spilling
...
Split information collection and method node mutation.
2020-08-04 15:42:37 +02:00
Ilmir Usmanov
405c9743ef
Do not spill dispatch receiver of suspend functions if it is not used
...
#KT-20571
2020-08-04 15:42:36 +02:00
Jinseong Jeon
5db7957230
FIR2IR: use type arguments from fully expanded type
2020-08-04 14:44:38 +03:00
Victor Petukhov
af48f08f9c
NI: take into account flexible types during capturing arguments from expression
...
^KT-40544 Fixed
2020-08-04 12:38:04 +03:00
vldf
65ebd02a39
[FIR] Fix for CanBeReplacedWithOperatorAssignment Checker
2020-08-04 11:20:42 +03:00
Mikhail Glukhikh
6f3df6faf4
[FIR] Regenerate extended checker tests
2020-08-04 09:35:36 +03:00
Mikhail Glukhikh
181a8bb79e
[FIR TEST] Mute failing BB test with Byte/Short.and usage
2020-08-04 08:59:16 +03:00
Jinseong Jeon
47c47be3d3
FIR serializer: serialize annotations on FirTypeRef, not ConeKotlinType
2020-08-04 08:59:16 +03:00
Ivan Kylchik
0a28e5e031
Add argument unwrapping for case when argument is named
2020-08-04 08:59:15 +03:00
Mikhail Glukhikh
2e2099afae
[FIR] Introduce NOT_AN_ANNOTATION_CLASS diagnostic
2020-08-04 08:59:15 +03:00
Mikhail Glukhikh
8fd087a964
[FIR] Don't report duplicated UNRESOLVED_REFERENCE on annotation entries
2020-08-04 08:59:15 +03:00
Mikhail Glukhikh
a6e811a67a
[FIR] Add status to Java annotation constructor (fix after rebase)
2020-08-04 08:59:15 +03:00
Mikhail Glukhikh
8379b3794a
[FIR2IR] Return fallback mode for annotation resolved placeholder
2020-08-04 08:59:15 +03:00
Dmitriy Novozhilov
b63257345b
[FIR] Map Class to KClass in java annotations
2020-08-04 08:59:15 +03:00