Victor Petukhov
b78c645fb0
Report warnings by enhanced base types
2021-05-18 17:52:39 +03:00
Victor Petukhov
cba221c18a
Add test for enhancement in usages of annotated type parameter
2021-05-18 17:52:21 +03:00
Victor Petukhov
fd6475c804
Update tests
2021-05-18 17:52:19 +03:00
Victor Petukhov
8602d1fcf0
Merge foreign annotation tests for sources and binaries into single directory
2021-05-18 17:52:16 +03:00
Victor Petukhov
df2c95e444
[Jspecify] Use bounds of type parameters for warnings reporting as well
2021-05-18 17:52:14 +03:00
Victor Petukhov
0c4cba549d
[Jspecify] Use arguments of enhancement of type instead of arguments of base type during getting enhancement of type deeply
2021-05-18 17:52:12 +03:00
Victor Petukhov
21dada4d2d
[Jspecify] Use enhancement of type with enhancement if possible during substitution
2021-05-18 17:52:10 +03:00
Victor Petukhov
12f6146bdf
[Jspecify] Substitute enhancement of type instead of type itself directly
2021-05-18 17:52:09 +03:00
Victor Petukhov
2479655708
[Jspecify] Do preserving flexibility when adding equality constraints by taking into account type with enhancement
2021-05-18 17:52:07 +03:00
Victor Petukhov
937e82db46
[Jspecify] Report warnings on violated bounds of method type parameters
2021-05-18 17:52:06 +03:00
Victor Petukhov
0d6764efc5
Process raw types during erasion properly
...
^KT-46670 Fixed
^KT-46476 Fixed
2021-05-18 17:38:52 +03:00
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
Igor Yakovlev
ae63ad0b6d
[FIR] Fix annotations invalid references diagnostics
2021-05-14 23:05:44 +03:00
Dmitriy Novozhilov
24b6c5df56
Add regression test for KT-45905
2021-05-14 14:30:14 +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
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
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
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
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
Jinseong Jeon
bdfc879f00
FIR checker: report UNINITIALIZED_PARAMETER
2021-05-10 14:26:14 +03:00
Mark Punzalan
18f617a582
FIR: Make FirAnnotationArgumentChecker a FirAnnotationCallChecker, to
...
run on all annotation calls, including those inside type annotations.
2021-05-06 17:51:22 +03:00
Mikhail Glukhikh
1936a815e2
ConeTypeCompatibilityChecker: add temporary workaround for KT-46383
2021-05-06 17:50:35 +03:00
Tianyu Geng
db55a973d4
FIR: fix infinite recursion with equality operator checker
2021-05-06 17:50:34 +03:00
Tianyu Geng
d4717569b9
Fix inferred type of FirGetClassCall
...
The inferred type should be `KClass<out Blah>` for `FirGetClassCall`
invoked on expressions.
2021-05-06 17:50:33 +03:00
Tianyu Geng
7bb81ef157
FIR: add equality call checker
...
Added checker for FirEqualityOperatorCall. It's surfaced as one of the
following diagnostics depending on the PSI structure and types under
comparison:
* INCOMPATIBLE_TYPES(_WARNING)
* EQUALITY_NOT_APPLICABLE(_WARNING)
* INCOMPATIBLE_ENUM_COMPARISON_ERROR
Comparing with FE1.0, the current implementation is more conservative
and only highlights error if the types are known to follow certain
contracts with `equals` method. Otherwise, the checker reports warnings
instead.
However, the current checker is more strict in the following situations:
1. it now rejects incompatible enum types like `Enum<E1>` and
`Enum<E2>`, which was previously accepted
2. it now rejects incompatible class types like `Class<String>` and
`Class<Int>`, which was previously accepted
3. the check now takes smart cast into consideration, so
`if (x is String) x == 3` is now rejected
2021-05-06 17:50:32 +03:00
Jinseong Jeon
e2dc21da90
FIR checker: warn useless as and is
2021-05-05 18:20:51 +03:00
Ilya Kirillov
09a94f3200
FIR IDE: ignore non-passing tests in compiler based tests
2021-05-04 08:19:49 +02:00
Tianyu Geng
b6bd4ae8e6
FIR: check DELEGATE_SPECIAL_FUNCTION_RETURN_TYPE_MISMATCH
2021-04-30 19:58:50 +03:00
Mikhail Glukhikh
80a449862e
FIR: implement diagnostics for qualifier as stand-alone expression case
2021-04-30 17:59:45 +03:00
Mikhail Glukhikh
84ccf7bbb1
FIR: use Java 8 rules in not implemented checker
2021-04-30 17:59:38 +03:00
Victor Petukhov
c9568c0744
Fix FIR tests
2021-04-30 16:49:56 +03:00
Victor Petukhov
7c62e9aecd
Introduce warnings reporting by missed constraints because of incorrect optimization in the constraints processor
2021-04-30 15:46:04 +03:00
Victor Petukhov
e110b49cab
Revert "Don't stop constraints processing if all type variables have proper equality constraints"
...
This reverts commit b87c2a15
2021-04-30 15:46:03 +03:00
Victor Petukhov
e93133a28f
Implement jspecify marks processing in the tests properly, by adding specific handler and cleanuper
2021-04-30 14:43:27 +03:00
Victor Petukhov
b9536a25d6
Support type enhancement on freshly supported module level annotations
...
^KT-45189 Fixed
2021-04-30 14:43:27 +03:00