Commit Graph

31139 Commits

Author SHA1 Message Date
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