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
51be629e13
[NI] Pass resulting constraint system for error candidate
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
Mikhail Zarechenskiy
e040a317cc
[NI] Store setValue with fresh type variables before substitution
2017-08-23 15:53:50 +03:00
Mikhail Zarechenskiy
f42be4aea2
[NI] Fix exception explicit qualified receiver and dispatch receiver
2017-08-23 15:53:46 +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
Denis Zharkov
ad9fe53ee2
Avoid local var entry for continuation parameter in suspend function
...
The primary reason is getting rid of redundant stack spilling, but also
it's not very sensible to have such entry since the parameter
is synthetic
2017-08-22 18:43:31 +03:00
Denis Zharkov
fcd7677a3f
Fix compatibility of suspend functions with strict bytecode analyzers
...
In short, some of the bytecode analyzers assume that there could be
no stores instructions into parameter vars with value of different
types (even when the value type is a subtype)
See the issue for details
#KT-19713 Fixed
2017-08-22 18:43:26 +03:00
Mikhael Bogdanov
8af7a25f8e
Update maxStack on synthetic instruction insertion
...
#KT-19723 Fixed
2017-08-17 20:02:29 +02:00
Alexander Udalov
4d2fbf1801
Fix reflection for local delegated properties inside interface
...
#KT-19690
2017-08-17 15:35:11 +02: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
Alexander Udalov
770441c212
Merge "diagnostic with Java 8" tests with general diagnostic tests
2017-08-17 13:15:18 +03:00
Mikhail Glukhikh
a12877e51c
Add feature support for "smart casts on variables in closures"
...
So #KT-14486 Fixed
2017-08-16 12:34:04 +03:00
Mikhail Glukhikh
a086863561
Preliminary: support smart casts on variables in closures
...
No feature support yet
So #KT-14486 In Progress
2017-08-16 12:33:52 +03:00
Mikhail Glukhikh
b2d931fb1f
Support smart casts after if (nullable ?: boolean) #KT-8492 Fixed
2017-08-16 12:33:35 +03:00
Mikhail Glukhikh
80b6aaa802
Support smart casts to Type after x as? Type null check #KT-4565 Fixed
2017-08-16 12:33:12 +03:00
Yan Zhulanow
57d209f599
Kapt: Do not use awkward ('$' -> '/') logic for KAPT3 class builder mode
...
So (for the most often reproduction case) #KT-19433 Fixed
Before this commit, internal names for nested classes were written as test/Foo/Bar (comparing to test/Foo$Bar in the normal mode), as getting qualified names from such internal names was trivial. But, because of IC, we needed to write class files to the disk, so our decompiler could find such "broken" classes and read it in a wrong way.
2017-08-15 17:48:51 +03:00
e5l
e315249624
Add tests on jsr305 annotations warnings
2017-08-15 11:01:08 +03:00
e5l
5501cdf049
Add warnings for jsr305 nullable annotations
...
#KT-19115 Fixed
2017-08-15 11:01:08 +03:00
Dmitry Petrov
a8c82b64a1
Do not check bounds in type alias expansion if checkBounds is false
...
This happens when we resolve bounds for type parameters, causing wrong
UPPER_BOUND_VIOLATED to be reported on type parameter whose bounds were
not resolved yet.
#KT-19601 Fixed Target versions 1.1.5
2017-08-11 11:29:59 +03:00
Denis Zharkov
ce37ab81ba
Fix types enhancement for properties' getters overrides in Java
...
Prior to the 1.1.4, nullability related annotations were stored
in types that became hard to maintain at some moment and
we got rid of it (see 57b7b91444 )
But enhancement for properties overrides stopped working
because there were effectively no annotations in the
resulting descriptor
#KT-19409 Fixed
#KT-19409 Fixed
2017-08-11 10:19:55 +07:00
Denis Zharkov
8898455352
Add tests on foreign annotations without them in classpath
...
#KT-19419 Fixed
2017-08-11 10:18:41 +07:00
Denis Zharkov
a82e313d14
Minor. Fix wrong target in test data for foreign annotations
2017-08-11 10:18:41 +07:00
Mikhael Bogdanov
6ca06265cf
Rename and disable test on JS
2017-08-10 16:16:28 +02:00
Dmitry Petrov
674d30cd76
Report deprecation on typealias companion object for deprecated alias
2017-08-10 15:45:44 +03:00
Dmitry Petrov
c180de563f
Support DslMarker on type aliases
2017-08-10 15:45:44 +03: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
Mikhael Bogdanov
15f401a473
Copy annotation and attributes on class transformation during inline
2017-08-08 09:50:42 +02:00
Mikhail Zarechenskiy
e2dcf47b3b
Fix highlighting range of diagnostic in test data
...
Because of ae3497c6ce
2017-08-08 00:29:18 +03:00
Mikhail Zarechenskiy
ae3497c6ce
Reduce highlighting range for UNCHECKED_CAST
...
#KT-18985 Fixed
2017-08-07 18:49:58 +03:00
Mikhail Zarechenskiy
8f8143d3ed
Fix IAE for wrong use-site @file annotation
...
#EA-100189 Fixed
2017-08-07 18:49:57 +03:00
Mikhail Zarechenskiy
7ba073206d
Add test for obsolete issue about SAMs
...
#KT-11951 Obsolete
2017-08-07 18:36:07 +03:00
Mikhail Zarechenskiy
dc83e5ca3a
Fix test which is correctly work in old inference
2017-08-07 18:01:17 +03:00
Mikhail Zarechenskiy
3fb865e07c
Move test for NI to diagnostic tests and add "todo"
2017-08-07 18:01:16 +03:00
Mikhail Zarechenskiy
fb72726f08
Resolve right part of equality with given descriptors
2017-08-07 18:01:15 +03: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
Dmitry Petrov
c0d6eff97c
[NI] Select variable with proper non-trivial constraint first
2017-08-07 18:01:05 +03:00