Commit Graph

26866 Commits

Author SHA1 Message Date
Mikhail Glukhikh 8bcae80877 [FIR TEST]: add test with Map.Entry-based J/K hierarchy 2019-11-29 18:11:22 +03:00
Mikhail Glukhikh 8a601b5a0e FIR accessors: add protection against special names 2019-11-29 18:11:21 +03:00
Mikhail Glukhikh b48a4ace57 FIR accessor symbols: check all possible getter name variants 2019-11-29 18:11:21 +03:00
Mikhail Glukhikh ed6238db4b FIR accessor symbols: support 'is' prefix 2019-11-29 18:11:20 +03:00
Mikhail Glukhikh eb90bd0e89 FIR: correctly process accessor symbols in derived classes 2019-11-29 18:11:19 +03:00
Mikhail Glukhikh f1eb0dff1f FIR: disable synthetic scope, make accessor symbols synthetic
Before this commit, we had two methods to do generally the same synthetic thing.
It's an attempt to keep only one of them.
Accessor symbols are generated in Java use-site member scopes,
at this place we know better whether we are in Java class or not.
However, we have to do this at every use-site level, which is relatively slow.
Also we could encounter problems when accessor function is overridden in Kotlin,
and accessor symbol can still contain reference to Java accessor.
2019-11-29 18:09:07 +03:00
Simon Ogorodnik 2f9c94bd9e [FIR] Fix Definitely Not Null type substitution 2019-11-29 18:04:49 +03:00
Simon Ogorodnik e5f60253f7 [FIR] Improve path usages in generator, provide default output 2019-11-29 18:04:48 +03:00
Simon Ogorodnik 5eb5d8e515 [FIR] Separate generated tree files from non-generated sources 2019-11-29 18:04:47 +03:00
Mikhael Bogdanov d2e5432b2d Minor. Update test data 2019-11-29 13:49:13 +01:00
Ilya Chernikov b3c5362003 [NI] Fix diagnostic reporting for missing type parameter info
#KT-31975 fixed
2019-11-29 13:44:42 +01:00
Ilya Chernikov 7dd9ed7e38 [NI] Fix loosing type annotations on extension functions
#KT-32138 fixed
2019-11-29 13:44:41 +01:00
Mads Ager 467e6e3d97 JVM_IR: Fix field initialization in secondary enum constructors. 2019-11-29 13:40:18 +01:00
Mads Ager 8cd6dc0cd9 JVM_IR: Use IrInlineReferenceLocator for inline local var lowering. 2019-11-29 13:38:34 +01:00
Mads Ager e2a1cb1077 JVM_IR: Generate fake inlining local variables for debugging. 2019-11-29 13:38:34 +01:00
pyos fa8cb7b6e0 PSI2IR: support NewInference + SamConversionPerArgument
except for SAM conversions of varargs (which aren't implemented in the
non-IR JVM backend either btw)
2019-11-29 15:25:32 +03:00
Mikhael Bogdanov cf6f823d29 Use descriptor from resolved call to inline accessors
In case of inline it should be same descriptor (except of fake override), In general case getter could be synthetic accessor and in such case it's not inline
2019-11-29 13:15:42 +01:00
Mikhael Bogdanov 320c5f6f00 Cast dispatch receiver to actual declaration owner though inline
Otherwise corrupted frame information is generated in bytecode

 #KT-29242 Fixed
2019-11-29 13:15:42 +01:00
Dmitry Petrov a2188610b1 Promote KotlinABI version 2019-11-29 13:53:05 +03:00
Dmitry Petrov 55e9e8afbf IR ser/deser: IrSimpleFunction.isOperator 2019-11-29 13:53:05 +03:00
Dmitry Petrov 0681c0d956 IR BE Common: IrSimpleFunction.isOperator 2019-11-29 13:53:05 +03:00
Dmitry Petrov 4591dfdf47 JVM_IR: IrSimpleFunction.isOperator 2019-11-29 13:53:05 +03:00
Dmitry Petrov 31b63c0fc8 JS_IR: IrSimpleFunction.isOperator 2019-11-29 13:53:05 +03:00
Dmitry Petrov cb1b9c2ccf IR testData: IrSimpleFunction.isOperator 2019-11-29 13:53:05 +03:00
Dmitry Petrov e4303b0173 FIR2IR: IrSimpleFunction.isOperator 2019-11-29 13:53:04 +03:00
Dmitry Petrov d6db6becb9 IR: IrSimpleFunction.isOperator 2019-11-29 13:53:04 +03:00
Ilmir Usmanov 51a9df2902 JVM_IR: Support suspend lambdas with receivers and multiple parameters
In old BE we generate `create` for this kind of suspend lambdas, which,
like in simple suspend lambdas is responsible for putting arguments
(including extension receiver) to fields.
But, if number of parameters of suspend lambda (including receiver) >= 1,
there is no need to generate `create`, since `create` is called only by
`createCoroutine` and friends from stdlib, and there is no version of
`createCoroutine` for lambdas with multiple parameters.
Thus, in old BE we generate a redundant method, which affects method
count.
In JVM_BE we decided to 'inline' create into `invoke` for suspend lambdas
with multiple parameters.
2019-11-28 21:19:27 +03:00
pyos 98660cdf2d JVM_IR: serialize anonymous functions' descriptors 2019-11-28 18:17:01 +01:00
victor.petukhov e246c23a46 Fix prematurely analyzing a lambda while fixing a type variable for another argument
^KT-35168 Fixed
2019-11-28 19:03:30 +03:00
Dmitriy Novozhilov c4a115720e [FIR-TEST] Update testdata
It was forgotten in 61c17d91
2019-11-28 18:01:14 +03:00
pyos 2f4f09e3a2 JVM_IR: remove some redundant calls to deepCopyWithSymbols 2019-11-28 15:42:06 +01:00
Simon Ogorodnik dbf0742c00 [FIR] Fix self-type for enum 2019-11-28 17:23:05 +03:00
Vyacheslav Gerasimov 26113b1e0f Create target directories while copying compiler.xml for tests 2019-11-28 16:02:41 +03:00
Mikhail Glukhikh 6401596d58 FIR resolve: support processing extensions before members (forEach case) 2019-11-28 15:36:58 +03:00
Dmitriy Novozhilov 61c17d9110 [FIR-TEST] Add test with missing smartcast 2019-11-28 15:28:21 +03:00
Dmitriy Novozhilov dcd1c2647e [FIR-TEST] Add test with problem with default java importing scope 2019-11-28 15:28:21 +03:00
Dmitriy Novozhilov bb89fee431 [FIR-TEST] Add test with ambiguity in static java scopes 2019-11-28 15:28:20 +03:00
Roman Artemev 4759c16428 [JS IR] Fix IrGetClass for Throwable successors
- add test
2019-11-28 14:45:34 +03:00
Yan Zhulanow 606cad1059 Pill: Add fir/lightTree module 2019-11-28 20:02:41 +09:00
Yan Zhulanow 60a77acd7a Pill: Fix compiler tests (support both JPS build and Pill in JUnit 3 runner) 2019-11-28 20:02:40 +09:00
Mikhail Glukhikh f58af2e4c3 FIR2IR: fix constructor referencing in return statement 2019-11-28 13:50:10 +03:00
Mikhail Glukhikh 29e882eae7 FIR resolve: add minor comments about substitutions around JvmMappedScope 2019-11-28 13:18:11 +03:00
Mikhail Glukhikh e43a1ee1c5 FIR JvmMappedScope: substitute type parameters in Java scope with Kotlin ones
Without it, override mapping does not work properly.
NB: at this moment Java forEach often supersedes Kotlin forEach,
because call isn't reported as erroneous properly.
2019-11-28 13:18:11 +03:00
Mikhail Glukhikh 2c611d75bc [FIR TEST]: two more tests on forEach potential ambiguity (both passing) 2019-11-28 13:18:10 +03:00
Mikhail Glukhikh 4f1167b16f Move buildDefaultUseSiteMemberScope to FirSymbolProvider 2019-11-28 13:18:10 +03:00
Mikhail Glukhikh 71b95bd91d FIR resolve: make substitution also for mapped Java type parameters 2019-11-28 13:18:10 +03:00
Mikhail Glukhikh b3056b8bf5 FIR resolve: implement JVM K/J type mapping
Declared member scopes are now wrapped in JvmMappedScope
2019-11-28 13:18:10 +03:00
Mikhael Bogdanov 742c3a228a JVM_IR. Proper lower toArray functions 2019-11-28 08:31:15 +01:00
Georgy Bronnikov 1ed23d7c54 IR: reorganize IrProvider handling
Make DeclarationStubGenerator a subclass of IrProvider,
anticipating deserialization of IR structures for JVM_IR backend.
2019-11-27 20:02:27 +03:00
Dmitriy Novozhilov e38fdae1bc Regenerate DiagnosticsTestWithJsStdLibGenerated 2019-11-27 18:03:05 +03:00