Victor Petukhov
a8e28e4b69
Update compiler tests
2021-07-09 19:21:28 +03:00
Victor Petukhov
584facc95f
Fix fir-related problems and tests for inferring self types
2021-07-09 19:21:25 +03:00
Victor Petukhov
9e48ef85ea
Add tests for inferring self types from Java
2021-07-09 19:21:22 +03:00
Victor Petukhov
3b16865152
Don't approximate captured types while substitute them in upper bound position
2021-07-09 19:21:17 +03:00
Victor Petukhov
3787099a38
Put the type inference on calls with self types under the compiler flag
2021-07-09 19:20:56 +03:00
Victor Petukhov
51c5a54e31
Support type inference for self type materialization calls
2021-07-09 19:20:54 +03:00
Mikhail Zarechenskiy
44cf4be1e5
Inference for some kind of self types
2021-07-09 19:20:52 +03:00
Alexander Udalov
d43ed1cf75
Minor, add test on typeOf with intersection type
2021-07-09 14:53:57 +02:00
Alexander Udalov
a7e48c3af1
Improve toString of platform types created by typeOf
...
In the stdlib implementation, render "!" if the type is only
nullability-flexible. Otherwise, render "($lower..$upper)".
Note that full kotlin-reflect has a much more complicated logic (see
`DescriptorRendererImpl.renderFlexibleType`) that renders things like
`(Mutable)List` and so on. It is not a goal of the stdlib implementation
to replicate all of that, since it requires copying a large amount of
code, namely the entirety of `JavaToKotlinClassMap` to map Java class
names to Kotlin.
2021-07-09 14:53:56 +02:00
Alexander Udalov
ddfa94e7e9
Support Nothing type in typeOf
...
The proper support will come in KT-15518, but that would be a breaking
change even for stable Kotlin without kotlin-reflect. Before that issue
is fixed, represent Nothing in types with the Void class, and use a flag
in the no-reflect implementation to remember that it's not actually the
Void class itself.
#KT-39166 Fixed
2021-07-09 14:40:05 +02:00
Alexander Udalov
02774fae0c
Report error on non-reified type parameter with recursive bound in typeOf
...
Instead of throwing an exception.
#KT-40173
2021-07-09 14:31:52 +02:00
Alexander Udalov
438ce57183
Report error on typeOf<suspend ...>()
...
Otherwise an invalid type is constructed which causes kotlin-reflect to
crash, and stdlib implementation to render the type incorrectly. The
reason is that suspend functional types are not properly supported in
reflection. Once they are supported, this error can be removed.
#KT-47562
2021-07-09 14:31:52 +02:00
Victor Petukhov
c3a5a7754d
Use proper applicability for constraint warnings
...
^KT-47316 Fixed
2021-07-09 14:07:01 +03:00
Dmitry Petrov
24fcadb869
JVM don't run CCE on methods without optimizable conditional jumps
2021-07-08 22:11:59 +03:00
Alexander Udalov
25f0beed12
Load async-profiler.jar if possible when using -Xprofile
...
Instead of requiring it to be on the compiler classpath.
This will make it much easier to profile the Kotlin compiler daemon in
Gradle, by just specifying a compiler argument instead of also manually
patching the compiler jar.
2021-07-08 20:44:45 +02:00
Ilya Muradyan
787ce6335c
Change nestedClasses logic to accept classes with nested type aliases
...
#KT-47650 fixed
2021-07-08 21:04:53 +03:00
Ilya Kirillov
eab1a78d48
FIR IDE: mute failing multimodule tests
2021-07-08 18:25:44 +03:00
Roman Golyshev
dcc30cb672
FIR IDE: Mute test with java file in the dependency
...
The corresponding JavaSymbolProvider currently is unable to
see the `Foo` class, because under the hood it uses
`JvmDependenciesIndexImpl` which doesn't know about the corresponding
.java file because it is created for m2-module `project`
I wasn't able to fix it yet
2021-07-08 18:25:42 +03:00
Andrey Zinovyev
1cb34541bd
[FIR] Fixes after delegation scope rework
2021-07-08 18:13:52 +03:00
Andrey Zinovyev
02297d2c75
[FIR] Rollback exposure of j.u.List.sort method
2021-07-08 18:13:51 +03:00
Andrey Zinovyev
b36f8ed8f5
[FIR] DATA_CLASS_OVERRIDE_CONFLICT diagnostic
2021-07-08 18:13:48 +03:00
Andrey Zinovyev
b44785c24e
[FIR] NOTHING_TO_OVERRIDE diagnostic
2021-07-08 18:13:47 +03:00
Andrey Zinovyev
9452b788bf
[FIR] Implement CANNOT_OVERRIDE_INVISIBLE_MEMBER diagnostic
2021-07-08 18:13:46 +03:00
Andrey Zinovyev
3f7d050f8f
[FIR] Implement CONFLICTING_INHERITED_MEMBERS diagnostic
2021-07-08 18:13:44 +03:00
Andrey Zinovyev
78519f851e
[FIR] Implement VAR_OVERRIDDEN_BY_VAL_BY_DELEGATION diagnostic
2021-07-08 18:13:43 +03:00
Andrey Zinovyev
c98cd3b190
[FIR] Implement properties types mismatch on inheritence
...
PROPERTY_TYPE_MISMATCH_ON_INHERITANCE,
VAR_TYPE_MISMATCH_ON_INHERITANCE,
PROPERTY_TYPE_MISMATCH_BY_DELEGATION
2021-07-08 18:13:41 +03:00
Andrey Zinovyev
8c7ee0b714
[FIR] Implement RETURN_TYPE_MISMATCH_BY_DELEGATION diagnostic
2021-07-08 18:13:40 +03:00
Andrey Zinovyev
94da1e37aa
[FIR] Implement RETURN_TYPE_MISMATCH_ON_INHERITANCE diagnostic
2021-07-08 18:13:38 +03:00
Dmitriy Novozhilov
c0c9e4a114
Update testadata of PSI dump of java records
2021-07-08 13:29:21 +03:00
Dmitriy Novozhilov
955c506294
Update load java testdata with type use annotations
2021-07-08 13:29:21 +03:00
Dmitriy Novozhilov
4d4d3a998b
[FIR] Update load java testdata according to new sealed modifier
2021-07-08 13:29:20 +03:00
Dmitriy Novozhilov
11dfbd41ac
[Test] Delete obsolete descriptor renderer tests
2021-07-08 13:29:19 +03:00
Xin Wang
8317daa00b
Don't generate nullability assertions in methods for directly invoked lambdas
2021-07-07 20:32:47 +03:00
pyos
50797dba8d
JVM: do not use crossinline flag when inlining assertions
...
Crossinline lambdas *can* be inlined into objects, but don't *have* to;
the correct place should be determined from the context, not from the
parameter.
2021-07-07 16:48:01 +02:00
pyos
e64cda61d5
JVM_IR: do not generate $assertionsDisabled twice during inlining
2021-07-07 16:48:01 +02:00
Andrey Zinovyev
de3f31cf78
[FIR] Partial implementation of DEPRECATION(_ERROR) diagnostics
...
No support for inheritance deprecations
and deprecations in qualifier's parts
2021-07-07 16:19:28 +03:00
Andrey Zinovyev
9fad55d551
[FIR] Use @DeprecatedSinceKotlin in the resolution
2021-07-07 16:19:27 +03:00
Mikhail Glukhikh
bf40c07cc3
FIR: drop questionable DiagnosticKind.NotRootCause
2021-07-06 18:43:16 +03:00
Tianyu Geng
768ddea18f
FIR checker: ILLEGAL_DECLARATION_IN_WHEN_SUBJECT
2021-07-06 18:27:47 +03:00
Tianyu Geng
31573a98e8
FIR checker: report EXPECTED_CONDITION
2021-07-06 18:27:23 +03:00
Victor Petukhov
65fd8fc174
Add generated files with descriptors for foreign annotation tests
2021-07-06 18:10:22 +03:00
Victor Petukhov
6cfb1f40d6
Specify jspecify mode explicitly for warnings in tests
2021-07-06 09:54:32 +03:00
Victor Petukhov
50ad5116b5
Add CLI test for -Xnullability-annotations
2021-07-06 09:54:30 +03:00
Victor Petukhov
a82772f31a
Depend on passed language version explicitly to compute nullability annotation settings
2021-07-06 09:54:29 +03:00
Victor Petukhov
f46dc713d7
Support rxjava 3 nullability annotations
2021-07-06 09:54:28 +03:00
Victor Petukhov
6d3badb2cd
Support configuring of nullability annotations with their report levels through a test directive
2021-07-06 09:54:27 +03:00
Victor Petukhov
f92ab691f8
Add explicit enabling of TypeEnhancementImprovementsInStrictMode in jspecify tests
2021-07-06 09:54:26 +03:00
Victor Petukhov
c8af1b735f
Introduce compiler flag to manage status of specific Java nullability annotations
2021-07-06 09:54:23 +03:00
Alexander Udalov
113632c49c
Psi2ir: load single-value Java array annotation arguments correctly
...
#KT-47467 Fixed
2021-07-05 21:49:10 +02:00
Jinseong Jeon
cd78a156c5
FIR checker: apply member checkers to anonymous objects
...
because they can have member properties/functions too.
2021-07-05 18:32:34 +03:00