Mikhail Zarechenskiy
44cf4be1e5
Inference for some kind of self types
2021-07-09 19:20:52 +03:00
Andrey Zinovyev
db72fd1e93
[FIR] Fix inheritance check for substitution overrides
...
And delegates
2021-07-09 17:14:37 +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
Dmitriy Novozhilov
aa3a73c6c2
[FIR] Move JavaTypeEnhancementState to session component
2021-07-09 14:38:02 +03:00
Simon Ogorodnik
e102bdea20
[Build] Fix xerces usage in FIR modularized tests
2021-07-09 11:08:13 +00:00
Victor Petukhov
c3a5a7754d
Use proper applicability for constraint warnings
...
^KT-47316 Fixed
2021-07-09 14:07:01 +03:00
Victor Petukhov
1224d28deb
Move java type enhancement stuff to :core:compiler.common.jvm
2021-07-09 13:22:02 +03: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
Andrey Zinovyev
1cb34541bd
[FIR] Fixes after delegation scope rework
2021-07-08 18:13:52 +03:00
Andrey Zinovyev
221e642d97
[FIR] Fix inheritance diagnostics for new FirDeclaration hierarchy
...
Plus several small fixes in reporting itself
2021-07-08 18:13:49 +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
f4c8108ee0
[FIR] Substitute type parameters in inheritance checker
2021-07-08 18:13:45 +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
5552f5f5b2
[FIR] Update light classes testdata
...
In 203 platform java.lang.Object in position of type parameter
bound is not rendered
2021-07-08 13:29:20 +03:00
Dmitriy Novozhilov
11faf04a4c
[Test] Remove dependencies on IDEA classes from test modules
...
Some of IDEA services (like in `com.intellij/execution`) was copied,
because they are used in tests but jars with them compiled with
jdk 11 and we run our tests on jdk 8, so their bytecode can not
be read
2021-07-08 13:29:19 +03:00
Yan Zhulanow
cf65754ea4
Update 203 bunch
2021-07-08 13:29:18 +03:00
Dmitriy Novozhilov
ccc3e3510c
[Test] Remove useless dependencies on IDEA from FIR test modules
2021-07-08 13:29:18 +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
Igor Yakovlev
b64f7909b8
[FIR IDE] Implement own fir light classes support
2021-07-07 14:08:41 +02:00
Mikhail Glukhikh
c7877cb440
FIR: fix contract deserialization for assertIs<T>
2021-07-07 14:28:00 +03:00
Ilya Kirillov
51576c70b6
FIR: introduce package directive
...
The package directive is needed for KtElement -> FirElement mapping in IDE.
There should be some FirElement which will be result of mapping of elements
inside KtPackageDirective.
2021-07-06 22:49:50 +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
18384788a4
Move type enhancement state stuff into core:descriptors.jvm
2021-07-06 09:54:29 +03:00
Victor Petukhov
39ffcd3ba6
User proper report level for compatqual nullability annotations
2021-07-06 09:54:26 +03:00
Victor Petukhov
e16033f8d8
Add androidx recently nullability annotations
2021-07-06 09:54:26 +03:00
Victor Petukhov
4173f2d294
Don't forget jspecify annotation during extracting nullability from known annotations
2021-07-06 09:54:24 +03:00
Victor Petukhov
46d0b16142
Use new default settings for java nullability annotations in JavaTypeEnhancementState and get rid of all hardcoded defaults
2021-07-06 09:54:24 +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
Tianyu Geng
4c439bb5d7
FIR: fix DELEGATION_SUPER_CALL_IN_ENUM_CONSTRUCTOR
...
DELEGATION_SUPER_CALL_IN_ENUM_CONSTRUCTOR should be an error but it's
somehow a warning in FIR.
2021-07-05 18:32:37 +03:00
Tianyu Geng
db1db6c64c
FIR: fix CYCLIC_CONSTRUCTOR_DELEGATION_CALL
...
Somehow it's a warning in FIR, but it should be an error.
2021-07-05 18:32:36 +03: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
Jinseong Jeon
64a275cf83
FIR: fix type comparator
...
As many other places did, this one is supposed to return the diff value
if the given two intersection types' sizes are different.
2021-07-05 18:32:33 +03:00
Tianyu Geng
cdfb2fb3d9
FIR checker: report SETTER_PROJECTED_OUT
2021-07-05 18:32:32 +03:00
pyos
c3a91efea3
JVM_IR: fix primitive comparison optimizations
...
1. the `primitive == object?.something` fusion should not apply to
`primitive.equals(object?.something)` because it can't;
2. coercions to Int are there for a reason - don't remove them;
3. better optimize `primitive == object?.something` -- the result
should be subject to if-null fusion, so it needs to have a specific
pattern that resembles safe calls.
#KT-47597 Fixed
2021-07-05 18:13:09 +03:00
Dmitriy Novozhilov
6e1fce6b8b
[FIR] Fix creating scopes for enum entry initializers
...
Before we analyzed initializers of enum entry with scope for constructor
in implict type mode, so scope was untouchable. Now we analyze them
in body resolve phase, so previously we add value parameters to
constructors scope, which mess up scope of enum entry initializer
2021-07-04 13:29:03 +03:00
Dmitriy Novozhilov
1593c4859d
[FIR] Get rid of all conditional reads of FirDeclaration.resolvePhase
2021-07-04 13:29:03 +03:00