Stanislav Erokhin
397103f9d0
[NI] Fix smart cast for expression with captured input type.
2017-07-14 12:43:05 +03:00
Stanislav Erokhin
73cc1fdd9c
[NI] Resolve type variable to Nothing for TO_SUBTYPE direction.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
6e24b0f89d
[NI] Approximate captured types when we resolve type variable TO_SUPER.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
53caa84db9
[NI] Add constrains even we try add constraint like TypeVariable <: CapturedType from subtyping.
...
If such captured type has lower type, then from TypeVariable <: lowerType => TypeVariable <: CapturedType.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
657c332a1f
[NI] Do not run "or" branches for constraint subtyping.
...
We should never do that, because otherwise we can get unexpected result.
Example for input constraint: C(in String) <: T.
If we run usual subtyping algorithm, then we get 2 constraints:
C(in String) <: T and T <: String.
Of course such system has contradiction.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
0fadf0bf70
[NI] Approximate captured types before type variable fixation.
...
We prefer denotable types when we solve constraint system.
I.e. if for T we have not equality constraint with captured type we can approximate captured type to denotable type.
2017-07-14 12:43:03 +03:00
Stanislav Erokhin
b4bf534d29
[NI] Capture from supertypes of type parameter.
...
This works by accident in OI, so this should be supported by new inference.
2017-07-14 12:43:03 +03:00
Stanislav Erokhin
c4ddc7a3a6
[NI] Store stub resolved call to trace because some clients read this before all calls are completed.
...
This is bad idea, but this is how it works in old inference.
Now we just save old behaviour.
Future plan: fix checks where we get unfinished resolved calls.
2017-07-14 12:43:03 +03:00
Stanislav Erokhin
78f8d29a4c
[NI] Fix find maximally specific for NI.
2017-07-14 12:43:03 +03:00
Dmitry Petrov
d67b51e91a
[NI] Support wrong number of type arguments and integer constants.
...
- report WRONG_NUMBER_OF_TYPE_ARGUMENTS
- make integral types work again: IntegerValueType is represented as {Int & Byte & Short & Long} in the constraint system
2017-07-14 12:43:02 +03:00
Dmitry Petrov
f5c59b1343
[NI] Report special error message on constant expression type mismatch.
2017-07-14 12:43:02 +03:00
Dmitry Petrov
5afd3e72d6
[NI] Report diagnostic on abstract class instantiation.
2017-07-14 12:43:02 +03:00
Stanislav Erokhin
b012681a53
[NI] New inference -- initial commit.
2017-07-14 12:43:02 +03:00
Dmitry Petrov
036090be91
Support intersection type in TypeUtils.contains(...)
2017-07-14 12:43:01 +03:00
Stanislav Erokhin
e8501c7d54
Add method replaceType for ReceiverValue.
...
This method will used for capturing from expressions before call resolution.
2017-07-14 12:43:01 +03:00
Nikolay Krasko
1dcdb72a49
Process UastContext service absence (EA-100670)
2017-07-14 12:39:13 +03:00
Dmitry Jemerov
448dba3f78
License-related cleanup
2017-07-14 11:09:45 +02:00
Ilya Chernikov
84a812df19
Drop forced in-process compilation (as interface compatibility is resolved)
2017-07-13 15:45:34 +02:00
Dmitry Jemerov
9b37e76b14
Don't trigger update check when an in-memory file is modified
...
#KT-18954 Fixed
2017-07-13 12:50:15 +02:00
Mikhail Zarechenskiy
2d3ce89afc
Use only completed arguments of special call
2017-07-13 12:26:03 +03:00
Dmitry Petrov
a687dea898
Introduce special IrDeclarationOrigin's for for-loop variables
...
FOR_LOOP_ITERATOR
- temporary variable for for-loop iterator
FOR_LOOP_VARIABLE
- `x` in `for (x in xs)`
FOR_LOOP_IMPLICIT_VARIABLE
- temporary variable for for-loop with destructuring, e.g.:
for ((x, y) in xys)
=>
for (tmp in xys) {
val (x, y) = tmp
}
2017-07-13 10:59:51 +03:00
Andrius Semionovas
1cab0d09ab
KT-18979 Add val to proper place for 'Add val/var' intent
2017-07-13 01:20:24 +03:00
Alexander Udalov
f01de3a935
Minor, move lateinit tests into a subdirectory
2017-07-12 18:59:02 +03:00
Alexander Udalov
b2b492447f
Maven plugin: initial support for Java 9 modules
2017-07-12 18:58:36 +03:00
Alexander Udalov
848edc14cb
Maven plugin: fix warnings, update copyrights
2017-07-12 18:58:35 +03:00
Alexander Udalov
1d46070bd5
Minor, remove unneeded codegen test
...
This test is already present in compiler/testData/cli/jvm/
2017-07-12 18:58:35 +03:00
Mikhael Bogdanov
b2a7fb9534
Update ChangeLog.md for 1.1.4-EAP-11
2017-07-12 16:33:25 +02:00
Mikhael Bogdanov
b15cfeb0a0
Add 1.1.3-2 changes
2017-07-12 16:33:25 +02:00
Mikhael Bogdanov
ef003db020
Update ChangeLog.md for 1.1.3
2017-07-12 16:33:25 +02:00
baratynskiy
0b6ef5f291
Make idea-full exported in tests-common module because kapt3 tests use KotlinTestUtils.assertEqualsToFile which uses Editor defined in idea-full
2017-07-12 17:25:32 +03:00
baratynskiy
a288b8d318
Add jsr305.jar to intellij-core because guava-19.0 jar depends on Nullable defined in jsr305.jar
2017-07-12 17:25:32 +03:00
Anton Bannykh
0935ed41d4
JS: return exit code from the NodeJs kotlinc-js wrapper
2017-07-12 17:19:59 +03:00
Dmitry Petrov
da404de51e
Add comment regarding testData generation to RangeValues.kt
2017-07-12 16:23:36 +03:00
Dmitry Petrov
2849e19af5
Add test for indices.reversed()
2017-07-12 15:56:29 +03:00
Dmitry Petrov
6a673a03e4
Generate test data for in-expression tests, fix bug with indices
2017-07-12 15:56:29 +03:00
Igor Chevdar
890c6a9983
Regenerated box tests
2017-07-12 15:12:34 +03:00
Igor Chevdar
fd380f7545
Split up test on map access onto two tests: stdlib & compiler box test
2017-07-12 15:12:33 +03:00
Mikhail Zarechenskiy
14890890b1
Minor, get rid of unchecked cast
2017-07-12 14:37:27 +03:00
Mikhail Zarechenskiy
ee173077c0
Simplify diagnostic when there are wrong number of type arguments
...
#KT-12767 Fixed
2017-07-12 14:37:27 +03:00
Mikhail Zarechenskiy
e82c909f75
Use more specific status to report diagnostics
...
#KT-12737 Fixed
2017-07-12 14:37:26 +03:00
Mikhail Zarechenskiy
178bb900b4
Introduce inapplicable wrong receiver status to improve diagnostics
...
#KT-10754 Fixed
2017-07-12 14:37:26 +03:00
Mikhail Zarechenskiy
79ee8f452c
Add test for obsolete issue
...
#KT-12688 Obsolete
2017-07-12 14:37:26 +03:00
Toshiaki Kameyama
848f7423ee
Do not report "can be private" on properties of private class
...
So #KT-18822 Fixed
2017-07-12 10:35:10 +03:00
Dmitry Petrov
f4d63158cc
Take into account JvmName annotation when generating accessors
...
#KT-17444 Fixed Target versions 1.1.5
2017-07-12 09:37:16 +03:00
Dmitry Petrov
efb6756cbc
Initialize property metadata array before class body generation
...
Initialization of companion object members (e.g., delegate properties
using provideDelegate convention) can depend on property metadata array,
which in turn can be initialized before other class members.
#KT-18902 Fixed Target versions 1.1.5
2017-07-12 09:37:16 +03:00
Dmitry Petrov
8a9707c140
Generate proper initialization for possibly nullable SAM wrapper
...
#KT-18916 Fixed Target versions 1.1.5
2017-07-12 09:37:16 +03:00
Yan Zhulanow
b99007961f
NoArg: Do not invoke initializers by default. Require "invokeInitializers" option to be set explicitly (KT-18667, KT-18668)
2017-07-12 00:17:24 +03:00
Yan Zhulanow
a983137978
Kapt: Handle parameter with Java names clashing with Java keywords properly (KT-18377)
2017-07-12 00:17:23 +03:00
Alexey Tsvetkov
e56e3d78c8
Use ANSI escape codes only with CLI tools
...
Before this change jansi was used by the compiler,
unless "kotlin.colors.enabled" is not set to false.
This caused multiple issues in different build systems,
where newer or older version of jansi could crash the JVM
since it uses native code.
The following short term solutions were discussed:
* Set "kotlin.colors.enabled" to false where jansi is not needed
(basically in any build system).
* Set "kotlin.colors.enabled" to true where jansi is needed,
and use it only when the system property is set to true.
Escaped codes are only needed in CLI tools (kotlinc, REPL),
so the second solution is preferred (less places to set the property).
#KT-17031 fixed
#KT-18874 fixed
#KT-18927 fixed
2017-07-11 21:03:11 +03:00
Kirill Rakhman
cb19a86c44
Add "simplify if with constant" inspection #KT-17919 Fixed
2017-07-11 20:00:33 +03:00