Dmitriy Novozhilov
24b6c5df56
Add regression test for KT-45905
2021-05-14 14:30:14 +03:00
Andrey Zinovyev
84a7bdffe5
[FIR] Don't report MUST_BE_INITIALIZED* on unreachable properties
2021-05-14 12:41:18 +03:00
Alexander Udalov
8308f5d7d3
Create array instances of correct types in reflection
...
Based on #4168 .
#KT-44977 Fixed
Co-authored-by: Arkady Bazhanov <arkady.bazhanov@gmail.com >
2021-05-14 11:16:29 +02:00
Steven Schäfer
b2378620c3
JVM IR: Fix handling of anonymous initializers in inline classes ( #4372 )
...
Fixes KT-46554
2021-05-13 18:40:26 +02:00
Andrey Zinovyev
58c7aa9937
[FIR] Don't replace custom compareTo with default one in primitives
2021-05-13 18:04:43 +03:00
Mikhail Glukhikh
1a3aa1bff0
FIR: report ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT
2021-05-13 16:13:44 +03:00
Mikhail Glukhikh
0f9f63400e
FirSupertypesChecker: implement six more diagnostics
2021-05-13 16:13:43 +03:00
Mikhail Glukhikh
6618b4ea57
FirPropertyAccessorChecker: add three new diagnostics
2021-05-13 16:13:07 +03:00
Dmitriy Novozhilov
1a3b5657c7
[FIR] Fix overload conflicts resolution for callable references with defaults
2021-05-13 15:31:18 +03:00
Alexander Udalov
7fb3f48c67
Add ClassDescriptor.getInlineClassRepresentation
...
This will be used at least in the JVM backend instead of the current
approach where we're loading the primary constructor's first parameter,
which isn't good enough since primary constructor can be private, and
we can't rely on private declarations in case they're declared in
another module.
2021-05-13 13:54:02 +02:00
Steven Schäfer
6aaff9dfb7
JVM IR: Handle overloaded values functions in MappedEnumWhenLowering
...
Fixes KT-46579.
2021-05-13 13:24:32 +02:00
Andrey Zinovyev
5d30576d28
[FIR] Report not-a-constant diagnostics inside function calls
...
When function calls are not fully resolved
2021-05-13 10:15:26 +03:00
Andrey Zinovyev
e74141ded6
[FIR] Properly check spread constant argument
2021-05-13 10:13:21 +03:00
Andrey Zinovyev
07e47140a6
[FIR] Treat unsigned numbers as primitives in constant checker
2021-05-13 10:11:59 +03:00
Ivan Kochurkin
598501aaf0
[FIR] Improve locations for DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED, DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL, DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE and other diagnostics, refactor
2021-05-12 18:42:44 +03:00
Ivan Kochurkin
52c32d3d85
[FIR] Implement DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE, fix tests
2021-05-12 18:42:43 +03:00
Ivan Kochurkin
177394f6ef
[FIR] Implement DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL, fix tests
2021-05-12 18:42:42 +03:00
Ivan Kochurkin
77c137df22
[FIR] Add DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED diagnostics, fix tests
2021-05-12 18:42:41 +03:00
Ivan Kochurkin
3191e0b925
[FIR] Implement DEPRECATED_SINCE_KOTLIN_WITHOUT_ARGUMENTS diagnostics, fix tests, merge and refactor annotation checkers
2021-05-12 18:42:40 +03:00
Ivan Kochurkin
dc99a673a5
[FIR] Implement DEPRECATED_SINCE_KOTLIN_WITH_UNORDERED_VERSIONS diagnostics, fix tests
2021-05-12 18:42:38 +03:00
Ivan Kochurkin
5c086e2321
[FIR] Implement NEWER_VERSION_IN_SINCE_KOTLIN diagnostics, fix tests
2021-05-12 18:42:37 +03:00
Ivan Kochurkin
1be02e3ac4
[FIR] Implement ILLEGAL_KOTLIN_VERSION_STRING_VALUE diagnostics, fix tests
2021-05-12 18:42:36 +03:00
Mikhail Glukhikh
4608ca15eb
FIR: don't allow SEALED callable modality anymore
2021-05-12 17:50:29 +03:00
Mikhail Glukhikh
67d1c35f19
FIR: report MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED also on interfaces
2021-05-12 17:50:27 +03:00
pyos
3fc2cc410c
JVM_IR: propagate reified type parameter usages from inline lambdas
...
...to whichever class they are inlined into, not the class they are
declared in (which is not the same if the lambda is crossinline).
#KT-46584 Fixed
2021-05-12 15:09:35 +03:00
Alexander Udalov
e079fb665e
JVM IR: fix inheritance from mutable collections of Int
...
For subclasses of `AbstractMutableList<Int>` which are not inline
classes, the special bridge `remove` had a parameter of type `Int`
(mapped to JVM primitive int) before this fix. The hack in
`MethodSignatureMapper` changed this type to `Int?`, yet the body of the
special bridge still loaded it as non-nullable, which resulted in
incorrect bytecode.
It looks like a part of this hack in `BridgeLowering` was made only for
inline classes which are subclasses of mutable collections. Supposedly
it should be extended to non-inline classes, so that `remove` special
bridge would have consistent IR by the time it reaches codegen.
#KT-46516 Fixed
2021-05-12 13:58:40 +02:00
Mads Ager
2c5a4dcb98
[JVM IR] Fix constant folding to use basic types always.
...
Fixes KT-46540.
2021-05-12 11:57:20 +02:00
Ilya Goncharov
b9fc97b44f
[Gradle, JS] Add arguments for building caches
2021-05-12 11:57:14 +03:00
pyos
d5d6736e67
PSI2IR/FIR2IR: do not approximate T!! before translation
...
This leads to weird effects when it's in a contravariant position,
because it's approximated by Nothing.
2021-05-12 11:37:48 +03:00
pyos
a37db99841
JVM_IR: remove a hack from InlineCallableReferenceToLambda
...
It breaks other things, the same problem is hit by FunctionReference,
and it's the translation layer's fault anyway.
#KT-46555 Fixed
2021-05-12 11:37:47 +03:00
pyos
cff74b31d4
JVM_IR: get unbound property reference receiver type from KProperty1
2021-05-12 11:37:45 +03:00
Ilmir Usmanov
c4ddf3530d
Use GETFIELD instead of unbox-impl inside inline classes
...
#KT-36783 Fixed
2021-05-12 06:50:06 +00:00
Jinseong Jeon
8e10b5fdec
FIR: introduce FirExpressionWithSmartcastToNull
...
This new kind of expression encompasses the nullability of the original
expression after null check (or equivalent `is Nothing?` check).
Unlike FirExpressionWithSmartcast, this expression won't be materialized
during conversion to backend IR. Also, Nothing? is discarded when
computing the intersection of possible types from smartcast info.
In that way, Nothing? is not used during resolution, while such
smartcast info is stored in it (and the expression kind itself).
2021-05-11 21:28:44 +03:00
Xin Wang
b9209962cd
CLI: Add documentation for -J argument in kotlinc -help
2021-05-11 19:50:24 +02:00
Dmitriy Novozhilov
c9cd49d34f
[Test] Temporary remove test for KT-22379
...
This is needed because this test breaks IDE when whit file is indexed.
This test will be returned after release of new kotlin plugins for IDEA
2021-05-11 19:45:43 +03:00
Mads Ager
d397efb2bd
[JVM IR] Copy attributes for JVM_STATIC_WRAPPERS.
2021-05-11 16:26:04 +02:00
Mads Ager
3db5ba98ad
[JVM IR] Do not insert Nothing handling in JvmStatic wrapper.
...
Fixes KT-46568.
2021-05-11 16:26:04 +02:00
Dmitriy Novozhilov
3532ce7fbc
[Parser] Fix OOM in parsing of incorrect string literals
...
^KT-46455 Fixed
KT-34410
KT-46564
2021-05-11 16:43:29 +03:00
Mikhail Glukhikh
c284eab2dd
FIR / FE 1.0: fix exception for lambda with unresolved name
...
#KT-46515 Fixed
2021-05-11 15:41:06 +03:00
Ilmir Usmanov
640d263ae1
Do not unbox nullable Result, since before usage it is coerced
...
#KT-46505
2021-05-11 05:49:24 +02:00
pyos
656c2496a6
JVM_IR: omit bound receiver in IrExpressionLambdaImpl parameters
...
and remove a hack intended to replace the missing type conversions this
caused.
#KT-46505 Fixed
2021-05-11 05:49:20 +02:00
Dmitry Petrov
ac0aaff611
JVM_IR KT-46562 don't use LambdaMetafactory for Serializable SAMs
...
TODO support serializable lambdas creation with LambdaMetafactory
2021-05-10 14:54:14 +03:00
Jinseong Jeon
bdfc879f00
FIR checker: report UNINITIALIZED_PARAMETER
2021-05-10 14:26:14 +03:00
Mikhael Bogdanov
cd7841ceed
Generate type annotations on class type parameters bounds
...
#KT-13228
#KT-46539 Fixed
2021-05-10 12:12:21 +03:00
Mikhael Bogdanov
cbe3c66156
Generate function type parameter annotations and type annotations on their bounds into bytecode
...
Generate type parameter annotation by default for `-Xjvm-target 1.8` and above
#KT-46539
#KT-13228
#KT-46545 Fixed
2021-05-10 12:12:18 +03:00
Mikhael Bogdanov
209ec68591
Make copy for disabled ir tests
2021-05-10 12:12:16 +03:00
Mikhael Bogdanov
5ff4d648f4
Render generic signature in type parameters tests
2021-05-10 12:12:15 +03:00
Mikhael Bogdanov
6182228de8
Render all annotations in type parameters tests
2021-05-10 12:12:14 +03:00
Alexander Udalov
d306d8a90e
JVM IR: cast indy-SAM receiver type from KFunctionN to FunctionN
...
#KT-46512 Fixed
2021-05-07 00:53:31 +03:00
Alexander Udalov
6e3009b82e
JVM IR: generate adapted callable references as synthetic
...
As well as suspend conversion adapters, which are unsupported by default
right now.
#KT-46259 Fixed
2021-05-06 22:58:18 +03:00