Commit Graph

13667 Commits

Author SHA1 Message Date
Ivan Kochurkin 73fb851864 [FIR] Commit incorrect test data that should be restored after fix of https://youtrack.jetbrains.com/issue/KT-41794 2021-05-17 22:33:19 +03:00
Ivan Kochurkin c3b8f3e859 [FIR] Add lValueTypeRef to FirVariableAssignment, fix tests with ASSIGNMENT_TYPE_MISMATCH 2021-05-17 22:33:18 +03:00
Ivan Kochurkin e57108d4e8 [FIR] Implement ASSIGNMENT_TYPE_MISMATCH, RESULT_TYPE_MISMATCH diagnostics, fix tests 2021-05-17 22:33:16 +03:00
Dmitry Petrov 3a0e3798ec JVM_IR KT-46597 fix receiver type for inlined callable reference
Receiver type is used by SyntheticAccessorLowering to determine class in
which a synthetic accessor should be generated.
2021-05-17 20:12:58 +03:00
Igor Yakovlev ae63ad0b6d [FIR] Fix annotations invalid references diagnostics 2021-05-14 23:05:44 +03:00
Dmitry Petrov d1322280dd JVM_IR KT-46578 resolve fake overrides for fields 2021-05-14 16:20:22 +03:00
Mikhail Glukhikh a255f44d6e FIR2IR KT-46578 add overridden properties generation 2021-05-14 16:20:20 +03:00
Dmitry Petrov 53c1de172f IR KT-46578 add IrProperty#overriddenSymbols 2021-05-14 16:20:18 +03:00
Andrey Zinovyev dc9d5cdf35 [FIR] Handle of special getters when there is a kotlin super type
Special getter names (like Collection.size()) can be used only in Java
classes with all-java super-types
Because if there is a kotlin class (not interface) in
 the middle, we 'materialize' special getters to properties.
2021-05-14 15:38:09 +03:00
Dmitriy Novozhilov 28e4721a89 [FIR] Check internal visibility in FirJvmModuleVisibilityChecker using module data 2021-05-14 14:30:35 +03:00
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