Victor Petukhov
01e853fb9b
Introduce error for SUPER_CALL_FROM_PUBLIC_INLINE
...
^KT-45378 Fixed
2021-09-30 20:08:36 +03:00
Victor Petukhov
70d70b9042
Use warn mode by default for jspecify nullability annotations in 1.6
...
^KT-48851 Fixed
2021-09-30 20:08:35 +03:00
Mikhail Glukhikh
d3662b48a2
FIR: fix OPT_IN_MARKER_ON_WRONG_TARGET (setter via parameter case)
...
This commit fixes FIR bootstrap compilation
2021-09-30 14:58:14 +03:00
Denis.Zharkov
f7ef551f99
Report warnings on overrides with wrong types nullability
...
^KT-48899 Fixed
2021-09-30 14:36:26 +03:00
Dmitriy Novozhilov
7917e511ed
[FE 1.0] Disable INTEGER_OPERATOR_RESOLVE_WILL_CHANGE warning by default
...
Also remove sinceVersion parameter from
ApproximateIntegerLiteralTypesInReceiverPosition language feature
^KT-48992 Fixed
2021-09-29 21:23:22 +03:00
Mikhail Glukhikh
212c3e8d51
FIR: fix OPT_IN_MARKER_ON_WRONG_TARGET for constructor properties
2021-09-29 19:39:28 +03:00
Mikhail Glukhikh
e9bff861dd
FIR: report OPT_IN_MARKER_ON_OVERRIDE diagnostic
...
This diagnostic works in accordance with KT-45844 and KT-49002
2021-09-29 19:39:27 +03:00
Mikhail Glukhikh
ac3b738d9b
FIR: report OPT_IN_OVERRIDE(_ERROR) diagnostics
2021-09-29 19:39:25 +03:00
Mikhail Glukhikh
056f74a23b
FE 1.0: allow OptIn marker on override if base class is marked
...
#KT-49002 Fixed
2021-09-29 19:39:24 +03:00
Mikhail Glukhikh
a76aee9b69
FIR: spread OptIn markers to children except fake override case
...
This commit implements KT-49001 for FIR
2021-09-29 19:39:23 +03:00
Mikhail Glukhikh
69e06a242a
FE 1.0: spread OptIn markers to children except fake override case
...
#KT-49001 Fixed
2021-09-29 19:39:22 +03:00
Mikhail Glukhikh
3045a5e920
FIR: implement OPT_IN_MARKER_ON_WRONG_TARGET
2021-09-29 19:39:20 +03:00
Mark Punzalan
42abc4a3af
FIR: Don't use AnnotationUseSiteTarget.PROPERTY_GETTER when computing
...
deprecation from a callable reference use site.
Also fixed positioning of DEPRECATION(_ERROR) diagnostics on variable
assignments.
2021-09-29 19:39:17 +03:00
Mark Punzalan
b8ed46066e
FIR: Change diagnostic for ConeHiddenCandidate to UNRESOLVED_REFERENCE.
...
The KDoc for @Deprecated states that DeprecationLevel.HIDDEN usages
should look like unresolved references.
2021-09-29 19:39:17 +03:00
Mark Punzalan
58eb329fb9
FIR: Make CheckDeprecatedSinceKotlin the first resolution stage.
...
All subsequent stages don't need to run if the candidate is
@Deprecated(HIDDEN).
2021-09-29 19:39:14 +03:00
Mark Punzalan
63cc18b095
FIR: Add test for candidate behind hidden property accessors.
...
See KT-48799.
2021-09-29 19:39:13 +03:00
Tianyu Geng
f35680f0a4
FIR checker: resolve property with protected getter and public setter
...
Assuming Java class `Super` has a protected `getName` method and a
public `setName` method.
Then, in a subclass of `Super`, FE1.0 allows calls to `setName` via the
property syntax if the property is protected and invisible due to
dispatch receiver is not `this` or `super`.
2021-09-29 19:39:12 +03:00
Denis.Zharkov
9ac29e0714
Fix enhancement when mixing TYPE_USE and non-TYPE_USE annotations
2021-09-28 22:59:18 +03:00
Tianyu Geng
a5435c0efc
Make FE1.0 report tailrec diagnostics on the keyword
2021-09-28 22:30:20 +03:00
Tianyu Geng
5252effb10
FIR checker: report tailrec problems on the keyword
...
FE1.0 reports it on the declaration signature. This is not ideal so we
move it to the `tailrec` keyword in FIR.
2021-09-28 22:30:09 +03:00
Ivan Kochurkin
922ae607f6
[FIR] Implement REPEATED_ANNOTATION for types refs ^KT-48652 Fixed
2021-09-28 21:33:06 +03:00
Ivan Kochurkin
3dc0935da4
[FIR] Pass bounds from original type to fully expanded ^KT-40203 Fixed
2021-09-28 21:32:54 +03:00
Dmitriy Novozhilov
de7fb9606a
Migrate all JDK 9 related tests to JDK 11
2021-09-28 13:01:47 +03:00
Dmitriy Novozhilov
ce3562f0e8
Migrate all JDK 15 related tests to JDK 17
2021-09-28 13:01:45 +03:00
Mikhail Glukhikh
363680e4c9
Delay abstract class member forbiddance (see KT-45508) to 1.7
2021-09-28 11:17:42 +03:00
Victor Petukhov
ee728b6902
Use the new type inference for top-level callable reference resolution
...
^KT-47797 Fixed
^KT-47987 Fixed
^KT-45034 Fixed
^KT-48446 Fixed
^KT-13934 Fixed
2021-09-27 16:12:27 +03:00
Nikolay Lunyak
1a9f63efeb
[FIR] Fix INSTANCE_ACCESS_BEFORE_SUPER_CALL
2021-09-24 16:50:51 +00:00
Pavel Kunyavskiy
fb875c484d
[K/N] Implement instantiating of annotation class
2021-09-23 06:59:34 +00:00
Nikolay Lunyak
ba8dc49a31
[FIX] Move backing field bytecodeListing tests to a separate folder
2021-09-17 15:29:35 +03:00
Tianyu Geng
765cad8448
FIR checker: substitute type parameters in dispatch receiver type
...
Consider the following code:
```
fun test(a: List<String>) {
a.first()
}
```
The dispatch receiver type of `first` in this case is `List<T>` before
this change. After this change, it's `List<String>`.
In addition, this change also replace the dispatch receiver type with
the more specific type if available. For example, consider the following
```
class MyList: ArrayList<String>()
fun test(a: MyList) {
a.get(0)
}
```
The dispatch receiver type of `get` is `MyList`, instead of
`ArrayList<String>`. That is, a fake override is created in this case.
2021-09-17 01:59:06 +03:00
Tianyu Geng
d3e8cc577c
FIR checker: fix local type approximation on delegated property
...
Previously types of delegated property is not approximated, which can
cause local types to leak through public APIs.
2021-09-16 22:38:08 +03:00
Tianyu Geng
76e192fc8a
FIR Checker: check AMBIGUOUS_ANONYMOUS_TYPE_INFERRED
...
Also change
org.jetbrains.kotlin.fir.types.TypeUtilsKt#hideLocalTypeIfNeeded to skip
approximating anonymous objects if there are multiple super type refs so
that resolution behaves the same (for uncompilable code).
Note that this change does not implement check for
ApproximateAnonymousReturnTypesInPrivateInlineFunctions as the check is
already turned on in 1.5 and will likely not needed when FIR becomes
stable.
2021-09-16 22:38:06 +03:00
Tianyu Geng
dfc36ec614
FIR checker: ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_(ANNOTATION|FUNCTION)
2021-09-15 12:11:41 +03:00
Tianyu Geng
e95de0a778
FIR checker: report type mismatch for named vararg arguement
...
ProhibitAssigningSingleElementsToVarargsInNamedForm is enabled from 1.3
so there is no need to make FIR accepting single element passed through
named arguments.
In addition, we may want to report only
ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION and not arg
type mismatch. But FE1.0 is reporting both so I am following it. If we
want to remove the redundant report, we will probably want to remove
FirNamedVarargChecker and report during resolution as a cone diagnostic.
2021-09-15 12:11:36 +03:00
Tianyu Geng
3708290ca3
FIR checker: fix NON_VARARG_SPREAD
2021-09-15 12:11:35 +03:00
Tianyu Geng
b8b9502db4
FIR checker: fix ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION
...
Currently this checker is missing `arrayOf` calls inside annotation.
2021-09-15 12:11:28 +03:00
Tianyu Geng
3c84fbcab1
IR: make calls with explicit singleton receiver tailrec [KT-48602]
2021-09-14 23:48:52 +03:00
Tianyu Geng
8525b4932b
FIR Checker: check tailrec
...
Difference from FE1.0
* KT-4285: calls to virtual method with default argument should be
reported as not tailrec. FE1.0 is missing such cases.
* KT-48600: calls inside lambda should be reported as not tailrec. FE1.0
also misses such cases.
2021-09-14 23:48:50 +03:00
Denis.Zharkov
ef684c0dff
FIR: Improve error reporting for EXPRESSION_EXPECTED_PACKAGE_FOUND
2021-09-14 19:13:47 +03:00
Denis.Zharkov
6e6be7c953
FIR: Adjust test data
...
Currently, we've got two places where NO_COMPANION_OBJECT is reported
and they perform it kind of differently
2021-09-14 19:13:40 +03:00
Denis.Zharkov
9ca96ebbd2
FIR: Add FirVisibilityQualifierChecker
2021-09-14 19:13:39 +03:00
Denis.Zharkov
9575d4d242
FIR: Rework qualifier-in-expression resolution
...
Get rid of stateful FirQualifiedNameResolver
Resolve a.b.c-like calls step-by-step using just recursion
^KT-48363 Fixed
2021-09-14 19:13:38 +03:00
Ivan Kochurkin
a816bd9a33
[FIR] Add JVM_INLINE_WITHOUT_VALUE_CLASS, VALUE_CLASS_WITHOUT_JVM_INLINE_ANNOTATION
2021-09-13 20:49:00 +03:00
Ivan Kochurkin
7e7066d75e
[FIR] Add FUNCTION_DELEGATE_MEMBER_NAME_CLASH
2021-09-13 20:48:59 +03:00
Ivan Kochurkin
a5caa14255
[FIR] Add SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL
2021-09-13 20:48:59 +03:00
Ivan Kochurkin
5760a94ab4
[FIR] Add CONCURRENT_HASH_MAP_CONTAINS_OPERATOR
2021-09-13 20:48:58 +03:00
Ivan Kochurkin
0ffd6ccb34
[FIR] Add SUSPENSION_POINT_INSIDE_CRITICAL_SECTION
2021-09-13 20:48:57 +03:00
Ivan Kochurkin
e97933a9e5
[FIR] Add POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION
2021-09-13 20:48:55 +03:00
Ivan Kochurkin
dd46c36b24
[FIR] Add SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC
2021-09-13 20:48:54 +03:00
Ivan Kochurkin
07edb15138
[FIR] Expand typealias for correct approximation of types (particularly Int and Long)
2021-09-13 14:28:26 +00:00