Alexander Udalov
4f0585950e
IR: inline some transformChildren calls in IrElementTransformer{,Void}
...
IrElementTransformer.visitDeclaration/visitExpression are very prominent
hotspots, and it seems that HotSpot doesn't optimize the inlined Kotlin
bytecode there well enough. Reduce the bytecode in these and similar
methods by inlining calls to also/apply/transformChildrenVoid.
2020-08-14 21:55:36 +02:00
Roman Artemev
fa2c49a311
[Plugin API] Add extension point to contribute synthetic properties
...
- needs to fix KT_41006
2020-08-14 11:59:37 +03:00
Denis Zharkov
5ede37d6ab
Report warnings on safe call + nullable extension operator
...
^KT-41034 In Progress
2020-08-14 11:12:34 +03:00
Ilmir Usmanov
31e4ddafd1
Minor. Add test with boolean parameter
2020-08-13 15:52:53 +02:00
Ilmir Usmanov
bcbb050326
Use fields for spilled variables for lambda parameters as well
...
In other words, do not generate p$ fields if we can use L$ fields,
which are being cleaned up.
#KT-16222 Fixed
2020-08-13 15:52:51 +02:00
Yunir Salimzyanov
9ecf416a8a
Parse multiple buildTypeIds for one bunch and synchronize muted tests
...
Cause: split Ide plugin tests in 4 parts
2020-08-13 12:57:09 +03:00
Mikhail Zarechenskiy
aafe41cf7a
Do not force coercion to Unit for nullable lambda return type
...
#KT-41005 Fixed
2020-08-13 10:40:51 +03:00
Georgy Bronnikov
18ae665d41
IR: make IrCall take IrSimpleFunctionSymbol
2020-08-12 16:31:31 +03:00
Nick
28700ed64c
[FIR] Supertype and inheritance checkers group
2020-08-12 15:38:29 +03:00
Oleg Ivanov
252eb1ad23
[FIR] Fix typo in FirDataFlowAnalyzer
2020-08-12 15:00:54 +03:00
Oleg Ivanov
21b8679799
[FIR] Add ReturnsImplies effect analyzer
2020-08-12 11:06:07 +03:00
Oleg Ivanov
3454ae7ca4
[FIR] Add VariableStorage and flow on nodes into CFG reference
2020-08-12 11:06:07 +03:00
Oleg Ivanov
15598b62c9
[FIR] Add replaceControlFlowGraphReference function for FirFunction
2020-08-12 11:06:07 +03:00
Oleg Ivanov
7da94cc299
[FIR] Fix wrong ConstantReference for returnsNotNull in EffectExtractor
2020-08-12 11:06:07 +03:00
Georgy Bronnikov
d2fda2a07c
Fir2Ir: bug fix
2020-08-12 00:31:33 +03:00
Ilmir Usmanov
8a098545e6
Minor. Add test
2020-08-11 22:10:51 +02:00
Ilmir Usmanov
00bf07fc41
Force boxing kotlin.Result return type of suspend functions
...
#KT-40843 Fixed
2020-08-11 22:10:47 +02:00
Ilmir Usmanov
b06218c456
Minor. Update test data
2020-08-11 20:27:00 +02:00
Georgy Bronnikov
f21d8a4c5b
JVM_IR, minor: use vals instead of objects
2020-08-11 18:44:47 +03:00
Vladimir Dolzhenko
6e016ce041
ktFile has to return script declaration from stub as well
2020-08-11 14:31:18 +00:00
Oleg Ivanov
4367d6631f
[FIR] Add CallsInPlace contract analyzer
2020-08-11 16:17:01 +03:00
Oleg Ivanov
cc9c5b9e3c
[FIR] Add CFG nodes, add multiple subGraphs for CFGOwner
2020-08-11 16:17:01 +03:00
Oleg Ivanov
128075e780
[FIR] Add fir source saving in resolved contract description
2020-08-11 16:17:01 +03:00
Oleg Ivanov
f467dccc68
[FIR] Rename confusing variable in CFGTraverser
2020-08-11 16:17:00 +03:00
Steven Schäfer
53fe30eb45
JVM IR: Don't produce CHECKCASTs on null constants (KT-36650)
2020-08-11 15:13:40 +02:00
Alexander Udalov
7503f134c2
IR: use IdSignature to compare classes in FqNameEqualityChecker
...
This is both simpler and a lot more performant.
2020-08-11 14:41:57 +02:00
Alexander Udalov
36a1a65d98
IR: make IrBranch/IrCatch/IrSpreadElement/IrModuleFragment/IrPackageFragment classes
2020-08-11 14:41:57 +02:00
Alexander Udalov
08a35f0674
IR: make IrBody and subtypes classes
2020-08-11 14:41:57 +02:00
Alexander Udalov
4351f5235b
IR: make IrExpression and subtypes classes
2020-08-11 14:41:56 +02:00
Alexander Udalov
ba7ff36274
IR: make IrDeclarationReference and subtypes classes
2020-08-11 14:41:56 +02:00
Alexander Udalov
ee904a975a
IR: make IrMemberAccessExpression and subtypes classes
...
Merge IrMemberAccessExpressionBase into IrMemberAccessExpression, and
IrCallWithIndexedArgumentsBase into IrFunctionAccessExpression (extract
the latter into a separate file).
2020-08-11 14:41:56 +02:00
Alexander Udalov
fde7314aaf
IR: do not inherit IrExpressionWithCopy from IrExpression
2020-08-11 14:41:55 +02:00
Alexander Udalov
9aa7da44e2
IR: remove IrTerminalExpressionBase, Ir{Terminal,}DeclarationReferenceBase
...
Implement no-op acceptChildren/transformChildren in the base class
IrExpressionBase instead. This doesn't change behavior because all other
implementations of acceptChildren/transformChildren are not affected.
2020-08-11 14:41:55 +02:00
Alexander Udalov
868018f51f
IR: do not inherit IrFunctionReferenceImpl from IrCallWithIndexedArgumentsBase
2020-08-11 14:41:55 +02:00
Alexander Udalov
e3dfd5fb49
IR: push down implementations of startOffset/endOffset/type/...
...
Do not store these as properties in IrElementBase, IrExpressionBase and
similar classes. This helps to reduce boilerplate in implementations
(just "override val" in the constructor, instead of taking a parameter
and passing it to the superclass), and also slightly optimizes memory in
cases where the value is trivial (UNDEFINED_OFFSET, 0, etc) and thus
does not need to be stored.
2020-08-11 14:41:54 +02:00
Ilmir Usmanov
d861373c6d
Hack attributes for continuation of suspend function in SAM-adapter
2020-08-11 11:58:20 +02:00
Mikhail Zarechenskiy
2e131b870a
Add tests for obsolete issues
...
#KT-38804 Obsolete
#KT-38801 Obsolete
#KT-38835 Obsolete
#KT-38737 Obsolete
#KT-38664 Obsolete
#KT-38549 Obsolete
#KT-38766 Obsolete
#KT-38714 Obsolete
2020-08-11 12:34:02 +03:00
Georgy Bronnikov
7f4df19dd1
JVM_IR: reorganize throw... functions in Symbols
2020-08-11 10:54:29 +03:00
Denis Zharkov
6a16d6a246
FIR: Simplify delegating constructors call resolution
2020-08-11 10:14:02 +03:00
Denis Zharkov
8b71f5e558
FIR: Do not leave cyclic upper bounds of type parameters
2020-08-11 10:14:02 +03:00
Denis Zharkov
a5a93d00a7
FIR: Rework delegation constructor calls resolution
...
Make it work independently of being called for inner class (as in FE 1.0)
2020-08-11 10:14:02 +03:00
Denis Zharkov
db93b9052b
FIR: Fix incorrect optimization for integer literals
2020-08-11 10:14:02 +03:00
Mikhail Zarechenskiy
e49cdf0ca2
Prohibit using suspend functions as SAM in fun interfaces
...
#KT-40978 Fixed
2020-08-10 22:04:16 +03:00
Mikhael Bogdanov
607f99ed3c
Don't generate implicit overrides delegating to Java defaults
...
#KT-40920 Fixed
2020-08-10 20:03:23 +02:00
Dmitriy Novozhilov
0e53d11dd4
Disable AllowResultInReturnType feature
...
#KT-40843
2020-08-10 17:57:53 +03:00
Nick
0a2f113a24
[FIR] Fix slow string conversions in FirEffectiveVisibilityResolver
2020-08-10 13:46:15 +03:00
Pavel Kirpichenkov
f431da2a66
Reapply "Introduce @FrontendInternals annotation""
...
This reverts commit 9ca4717d11 .
^KT-39643 Fixed
2020-08-10 12:22:55 +03:00
Georgy Bronnikov
ea57b4cccb
IR: add and unmute tests
2020-08-10 10:16:24 +03:00
Georgy Bronnikov
85ba170217
JVM_IR: use IrBasedDescriptors across codegen
2020-08-10 10:16:23 +03:00
Georgy Bronnikov
0b4c43083d
IR: add IrBasedDescriptors
2020-08-10 10:16:23 +03:00