Dmitry Petrov
01cce59c35
Make sure lateinit top-level properties work in JVM BE
2017-08-31 11:28:08 +03:00
Dmitry Petrov
d0b0fdd732
Ignore lateinit local vars tests in JS and Native
2017-08-31 11:28:08 +03:00
Dmitry Petrov
c5b9d500bc
Support lateinit local vars in JVM BE
2017-08-31 11:28:08 +03:00
Dmitry Petrov
3bae430d49
Resolve lateinit variables
...
Do not report UNINITIALIZED_VARIABLE on lateinit variables
Provide delegating constructors for descriptors for compatibility.
2017-08-31 11:28:08 +03:00
Denis Zharkov
aef5911c7e
Obtain original suspend function view for inline codegen
...
It's necessary for generic inline suspend as a codegen
for it uses binding slice SUSPEND_FUNCTION_TO_JVM_VIEW
to generate fake continuation parameter, so all the
descriptors that are used for body generation must be
obtained from the SUSPEND_FUNCTION_TO_JVM_VIEW
#KT-19528 Fixed
2017-08-30 16:19:43 +03:00
Alexey Tsvetkov
44e8ae3571
JS IC: detect inline function changes
2017-08-29 04:28:07 +03:00
Alexey Tsvetkov
1c4ada2008
Fix searching serialized classes package contains multiple fragments
2017-08-29 04:28:03 +03:00
Alexey Tsvetkov
4aea9b349c
Refactor incremental services
2017-08-29 02:24:37 +03:00
Alexander Udalov
c420e2bfa5
Refactor FunctionReferenceGenerationStrategy
...
Draw a clear distinction between the referenced function's parameters
and the anonymous synthetic function's parameters (see the comment).
This will be useful in supporting advanced callable reference features
like KT-8834
2017-08-28 10:22:52 +03:00
Stanislav Erokhin
e65a62c48c
Minor. regenerate tests: kt19767_3 in JS muted.
2017-08-25 03:48:55 +03:00
Stanislav Erokhin
2ceb8cef36
[NI] Use same ResolvedCall when run completion
...
It is necessary, because some clients store this ResolvedCall to other
places, for example for get call it stored to INDEXED_LVALUE_GET
2017-08-25 03:38:49 +03:00
Mikhail Zarechenskiy
f31c48017b
[NI] Don't process lambda until expected type will be fixed
2017-08-25 02:47:46 +03:00
Mikhail Zarechenskiy
3f8a685ace
[NI] Make return type of !! operator definitely not-null
2017-08-24 13:50:11 +03:00
Mikhail Zarechenskiy
d18a14b717
[NI] Eliminate special intersection type from result type
2017-08-24 13:50:10 +03:00
Mikhail Zarechenskiy
9f2bf066b9
[NI] Transform anonymous types of expected type for delegation
2017-08-24 13:50:09 +03:00
Mikhael Bogdanov
1a05df204e
Properly check expression nullability on attempt to apply == optimizations
...
#Fix KT-19767
2017-08-24 09:51:55 +02:00
Mikhail Zarechenskiy
c45f86a2fc
[NI] Resolve function literals in block as lambda expression
2017-08-23 15:53:52 +03:00
Mikhail Zarechenskiy
08964006de
[NI] Avoid type capturing for types that can contain type variables
2017-08-23 15:53:51 +03:00
Stanislav Erokhin
9f71de5f66
Add test for lambda as last expression in lambda
2017-08-23 15:53:45 +03:00
Stanislav Erokhin
74e07b6580
Add regression test for no resolution recursion
2017-08-23 15:53:44 +03:00
Mikhail Glukhikh
9dc5354f24
Eliminate some warnings (mostly redundant is checks in whens)
2017-08-18 15:16:59 +03:00
Mikhail Glukhikh
3623f581b8
Eliminate a set of warnings, mostly nullability ones
2017-08-18 15:10:27 +03:00
Mikhael Bogdanov
97d46e76f5
Use 'DefaultImpls' as owner for interface local delegated properties
...
#KT-19690 Fixed
2017-08-17 15:35:10 +02:00
Mikhael Bogdanov
79ecc7fd5c
Don't recognize nullable function types as inlinable
...
#KT-19679 Fixed
2017-08-17 14:24:00 +02:00
Anton Bannykh
6a5d8dcc82
JS: reduce HashMap memory footprint
2017-08-16 13:23:36 +03:00
Alexey Tsvetkov
46a3a59b81
Fix missing lookups from deserialized JS descriptors
2017-08-10 21:19:42 +03:00
Alexey Tsvetkov
e2190ea956
Use lookup tracker in JS compiler
2017-08-10 21:19:42 +03:00
Alexey Tsvetkov
f5e77c740d
Introduce services to pass data between IC and JS compiler
2017-08-10 21:19:41 +03:00
Mikhael Bogdanov
6ca06265cf
Rename and disable test on JS
2017-08-10 16:16:28 +02:00
Mikhael Bogdanov
3fd6dd3572
Add test for quoted class name
2017-08-10 12:10:25 +02:00
Denis Zharkov
ff0736f09e
Fix exception after combination of while (true) + stack-spilling
...
FixStack transformation divides on phases:
- Fixing stack before break/continue
- Fixing stack for inline markers/try-catch blocks
After the first stage all ALWAYS_TRUE markers are replaced
with simple GOTO's and if we're skipping break/continue edges
we won't reach the code after while (true) statement.
At the same time it's fine to not to skip them in the second phase
as the stack for them is already corrected in the first phase
#KT-19475 Fixed
2017-08-08 18:52:21 +07:00
Denis Zharkov
45d5f6a950
Add test for obsolete issue
...
#KT-19467 Obsolete
2017-08-08 18:52:21 +07:00
Mikhail Zarechenskiy
e7cd615450
[NI] Introduce type depth in CS calculator to avoid SOE
2017-08-07 18:01:13 +03:00
Mikhail Zarechenskiy
cf75afba66
[NI] Fix type intersection for equal types
2017-08-07 18:01:12 +03:00
Mikhail Zarechenskiy
0d464f06d1
[NI] Consider CS as nullable if one of the types isn't subtype of Any
...
Note that this isn't fully correct, consider the following situation:
S : T, T : Any?
=> CS(S, T) = T, but for now it will be T?, which is reliable but not so specific as just T
2017-08-07 18:01:09 +03:00
Mikhail Zarechenskiy
39349abd39
[NI] Preserve name of parameters for functional types
2017-08-07 18:01:07 +03:00
Yujin Jung
4c00119f08
Fix incorrect slack link ( #1231 )
2017-08-07 11:39:02 +02:00
Dmitry Petrov
2ed5a5e368
'when' should use intrinsics for '=='
...
#KT-19029 Fixed Target versions 1.1.5
#KT-18818 Fixed Target versions 1.1.5
2017-08-07 10:31:02 +03:00
Dmitry Petrov
c5613888eb
Look into proper context when generating backing field access
...
Problem manifests when a class property name matches a companion object
property name, and class property is referenced in closure context.
#KT-19367 Fixed Target versions 1.1.5
2017-08-02 11:24:35 +03:00
Dmitry Petrov
9e6b706a03
Unwrap property imported from object on property access
...
#KT-18982 Fixed Target versions 1.1.5
2017-07-28 17:01:04 +03:00
Dmitry Petrov
5df461c7e0
Add test for KT-19246
...
The issue was fixed by
https://github.com/jetbrains/kotlin/commit/904c7f9c640ccb38c0becb40bd3b5dad3ac921bd
2017-07-28 08:24:46 +03:00
Dmitry Petrov
b81ca31aae
Record resolved delegation call for primary ctor if single result
...
Do the same thing as for secondary constructor (looks like it was a
workaround for R&I bug that was used only for secondary constructors
for some reason).
#KT-17464 Fixed Target versions 1.1.5
2017-07-27 09:24:48 +03:00
Dmitry Petrov
b867c46f72
Generate for-in-range loop as counter loop when possible
...
If an upper bound is a compile-time constant != Int.MAX_VALUE,
we can generate 'for (i in x..N)' as 'for (i in x until N+1)'.
2017-07-27 09:02:26 +03:00
Ilya Gorbunov
ca8bf395c3
Do not create iterator in 'any', 'none', 'all' and 'count' unless necessary
...
#KT-19133 Fixed
2017-07-26 22:42:29 +03:00
Alexander Udalov
2f99f6ad34
Refactor AnalysisFlags and their support in IDE
...
* Support flags with any value (not just Boolean)
* Support all flags by parsing arguments in KotlinFacetSettings, instead
of manually listing known flags
#KT-19210 Fixed
2017-07-26 11:45:24 +03:00
Ilya Gorbunov
baa6b44567
Deprecate CharSequence.size in JS
...
#KT-18267 Fixed
2017-07-24 21:14:45 +03:00
Dmitry Petrov
fda89e9c72
Add test for KT-19128
...
It looks like the problem was caused by incorrect merging of
StrictBasicValues and was fixed by commit
904c7f9c64 .
#KT-19128 Fixed
2017-07-24 10:15:27 +03:00
Dmitry Petrov
d0c8af5621
Keep track of second receiver type in CallReceiver
...
#KT-17725 Fixed Target versions 1.1.5
2017-07-24 10:15:27 +03:00
Mikhail Glukhikh
951e8cd91a
Code cleanup: unnecessary local variable applied
2017-07-21 18:58:48 +03:00
Dmitry Petrov
bf3e896464
Update 'this' extension receiver when there's a smart cast
...
If 'this' (implicit or explicit) was used as an extension receiver,
and the corresponding call required a smart-cast,
this information was effectively lost in "old" resolution & inference,
but is required by "old" JVM BE to generate proper CHECKCASTs.
2017-07-21 08:58:52 +03:00