Kirill Rakhman
2d7cadc0ab
[FE, Java Resolve] Filter out canonical record constructors
...
This fixes a false positive overload resolution ambiguity in FIR
when invoking a record constructor when it also defines a canonical
constructor (compact or explicit).
#KT-62151 Fixed
2023-11-02 12:39:45 +00:00
Kirill Rakhman
0682a1f76d
[FIR] Remove line breaks after context receivers in diagnostic messages
...
#KT-62944 Fixed
2023-11-02 08:58:28 +00:00
Kirill Rakhman
ac203591e5
[FE, Java resolve] Support inheritors of sealed Java type without permits clause
...
This fixes a false negative NO_ELSE_IN_WHEN in K2 and incidentally
also fixes a false positive NO_ELSE_IN_WHEN in K1 since the fix is in
the common code.
#KT-62491 Fixed
2023-10-31 13:41:56 +00:00
Kirill Rakhman
87563f3aea
[FIR] Rename diagnostic renderers that insert quotes and fix some messages
...
#KT-62386
2023-10-27 13:27:35 +00:00
Kirill Rakhman
2613a337ae
[FIR] Improve symbol rendering in *_NOT_IMPLEMENTED diagnostics
2023-10-27 13:27:35 +00:00
Kirill Rakhman
44a4498ee5
[FIR] Report ABSTRACT_MEMBER_NOT_IMPLEMENTED_BY_ENUM_ENTRY on enum entries with initializer
...
#KT-59577 Fixed
2023-10-27 13:27:35 +00:00
Kirill Rakhman
ef78d4b95a
[FIR] Fix deserialization of generic context receivers
...
We need to pass the local deserialization context so that generic
type parameters can be referenced.
#KT-62607 Fixed
2023-10-27 11:35:22 +00:00
Kirill Rakhman
8821f8d1a4
[FIR] Expand type alias when checking for type parameters from outer declaration
...
This fixes a false positive OUTER_CLASS_ARGUMENTS_REQUIRED when
referring to an inner class of a supertype that is extended using a
typealias.
#KT-62099 Fixed
2023-10-27 08:05:58 +00:00
Kirill Rakhman
907ebb36d0
[FIR] Filter out SAM constructors from MemberScopeTowerLevel
...
This tower level is for calls on a dispatch receiver, and it's not
allowed to call SAM constructors on a dispatch receiver.
#KT-60983 Fixed
2023-10-27 08:03:00 +00:00
Kirill Rakhman
56f53fbd0b
[FIR] Make ClassId not null in enum call mapped from java
2023-10-24 13:27:02 +00:00
Kirill Rakhman
65ff684589
[FIR] Don't discriminate generics in conflict resolution for callable references
...
#KT-59430 Fixed
2023-10-24 07:27:07 +00:00
Kirill Rakhman
a652c93828
[FIR] Remove useless call to FirWhenSubjectExpression.replaceConeTypeOrNull
...
This operation is a no-op.
#KT-61316
2023-10-06 21:26:42 +00:00
Kirill Rakhman
fbf68a5bcc
[FIR] Narrow down range of NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER
...
This uses the same approach as
INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION where we use a visitor
to find a call to a symbol that contains the type variable in question.
#KT-56140 Fixed
2023-09-22 13:49:59 +00:00
Kirill Rakhman
ff812197a8
[Test] Update test data after changes to FIR rendering
2023-09-21 14:02:21 +00:00
Kirill Rakhman
4e1dfcd2a8
[FIR] Improve readability of rendered types in diagnostics
...
#KT-61824 Fixed
#KT-61688 Fixed
2023-09-21 07:18:19 +00:00
Kirill Rakhman
99b852adf8
[FIR] Refactor constructors of ConeTypeRenders
2023-09-21 07:18:19 +00:00
Kirill Rakhman
da0308806a
[FIR] Rename ConeTypeRendererWithJavaFlexibleTypes to ConeTypeRendererForReadability
2023-09-21 07:18:19 +00:00
Kirill Rakhman
e996760e7e
[FIR] Fix rendering of SUSPENSION_POINT_INSIDE_CRITICAL_SECTION
...
#KT-61826 Fixed
2023-09-21 07:18:19 +00:00
Kirill Rakhman
ed4386a962
[FIR] Fix rendering of NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS
2023-09-21 07:18:19 +00:00
Kirill Rakhman
5c38289d60
[.idea] Add scope for testData and set file color to blue for it
2023-09-21 07:11:21 +00:00
Kirill Rakhman
5b4409e34c
[FIR] Store abbreviated type in deserialized declarations as attribute
...
#KT-58542 Fixed
2023-09-20 09:31:29 +00:00
Kirill Rakhman
2e4d486131
[FIR] Use enhanced scope to guess array type in annotation loading
...
Otherwise, we return null for any java annotation because the
unenhanced scope doesn't contain any properties.
#KT-61856 Fixed
2023-09-20 08:02:37 +00:00
Kirill Rakhman
dda6d20520
[FIR] Add test for WRONG_MULTIPLE_INHERITANCE with typealias
...
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
6a2b6e03d4
[FIR] Fix false negative ILLEGAL_JAVA_LANG_RECORD_SUPERTYPE
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
0d279dd652
[FIR] Fix false negative JVM_STATIC_ON_CONST_OR_JVM_FIELD
...
... in presence of typealias.
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
7a65c36bfc
[FIR] Add test for CLASS_CANNOT_BE_EXTENDED_DIRECTLY with typealias
...
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
2d4646a285
[FIR] Fix false negative sealed diagnostics
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
36c0c2c76b
[FIR] Fix false negative TYPE_PARAMETER_AS_REIFIED_ARRAY
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
f5f77d43bf
[FIR] Fix false negative NO_REFLECTION_IN_CLASS_PATH
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
5d7e6f2aab
[FIR] Use fullyExpandedClassId in FirTypeAliasExpandsToArrayOfNothingsChecker
2023-09-18 12:13:02 +00:00
Kirill Rakhman
98e6c0278a
[FIR] Fix false negative REPEATED_BOUND
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
9949de36c9
[FIR] Fix false negative ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:02 +00:00
Kirill Rakhman
9475bc250c
[FIR] Fix false negative REDUNDANT_CALL_OF_CONVERSION_METHOD
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:01 +00:00
Kirill Rakhman
e788c7166a
[FIR] Fix false negative REDUNDANT_SINGLE_EXPRESSION_STRING_TEMPLATE
...
... in presence of typealiases.
#KT-61921
2023-09-18 12:13:01 +00:00
Kirill Rakhman
373ffbc779
[FIR] Fix false positive CONST_VAL_WITH_NON_CONST_INITIALIZER
...
... in presence of typealiases.
#KT-61499 Fixed
2023-09-18 12:13:01 +00:00
Kirill Rakhman
b72ac4f560
[FIR] Introduce helper method ConeKotlinType.fullyExpandedClassId
2023-09-18 12:13:01 +00:00
Kirill Rakhman
0d628c9e59
[FIR] Inline FirExpression.coneTypeSafe und use resolvedType
...
The call-sites don't actually need to handle unresolved expressions,
they only need safe-casts to ConeClassLikeType or
ConeIntegerLiteralType.
#KT-61367
2023-09-14 10:03:03 +00:00
Kirill Rakhman
a4fff7c7c0
[FIR] Inline FirExpression.coneTypeUnsafe
...
#KT-61367
2023-09-14 10:03:03 +00:00
Kirill Rakhman
126f2c9440
[FIR] Skip published visibility computation for local functions
...
This fixes an exception caused by annotations being unresolved during
status computation.
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
f0112040fc
[FIR AA] Unmute passing test
2023-09-14 10:03:02 +00:00
Kirill Rakhman
aebb3bf0ee
[FIR AA] Use resolvedType instead of coneTypeOrNull where applicable
...
#KT-61367 Fixed
2023-09-14 10:03:02 +00:00
Kirill Rakhman
6d8091f0ff
[FIR] Add workaround for unresolved array literal type #KT-61843
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
462687ed66
[FIR] Don't resolve call in annotation arguments phase if receiver type isn't resolved
...
This prevents exceptions from being thrown during resolution of red code
because FirExpression.resolvedType is called but during annotation
arguments phase we don't have return types for implicitly typed
declarations.
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
66b911c923
[FIR] Migrate compiler.fir to use resolvedType where applicable
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
1c6776b2b4
[FIR] Introduce extension FirExpression.isResolved that requires no opt-in
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
e0b5fa1de8
[FIR] Add opt-in for FirExpression.coneTypeOrNull in scripting
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
b9b99366e7
[FIR] Use resolvedType instead of coneTypeOrNull in java.deserialization
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
b1565d547c
[FIR] Use resolvedType instead of coneTypeOrNull in FIR2IR
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
c3abe28049
[FIR] Use resolvedType instead of coneTypeOrNull in checkers
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
e8731f3f31
[FIR] Use resolvedType instead of coneTypeOrNull in tests
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
5d6affc38d
[FIR] Update FIR utilities
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
a49fdeb05b
[FIR] Update manual implementations of FirExpression
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
68bc2be4c9
[FIR] Regenerate FIR types
...
#KT-61367
2023-09-14 10:03:02 +00:00
Kirill Rakhman
6ec419edb7
[FIR] Update FIR schema to add opt-in to FirExpression.coneTypeOrNull
...
#KT-61367
2023-09-14 10:03:01 +00:00
Kirill Rakhman
ce65d3c7b8
[FIR] Set source on callee reference of implicit invoke receiver
...
This fixes an IllegalArgumentException when a diagnostic was reported on
it because no source was set.
#KT-61829 Fixed
2023-09-13 12:20:57 +00:00
Kirill Rakhman
d9da3973bb
[FIR] Remove redundant overloads of allowsToHaveFakeOverride
2023-09-12 10:46:46 +00:00
Kirill Rakhman
2bc25d4f6e
[FIR] Properly check for visibility in FirTypeIntersectionScopeContext
...
This fixes a false positive OVERRIDING_FINAL_MEMBER caused by a
package-private member in a different package being added to the
list of overridden symbols. However, in Java, package-private members
from different packages are effectively like private members in that
they cannot be overridden.
#KT-61696 Fixed
2023-09-12 10:46:46 +00:00
Kirill Rakhman
2566dabfce
[FIR] Report INVISIBLE_REFERENCE on the first unresolved qualifier
...
#KT-61719 Fixed
2023-09-11 14:23:55 +00:00
Kirill Rakhman
16ae83bde0
[FIR] Fix Java sealed class inheritors
...
This fixes NO_ELSE_IN_WHEN diagnostics when using java sealed
classes in an exhaustive when.
#KT-58216 Fixed
2023-09-11 07:37:37 +00:00
Kirill Rakhman
9a2307ad44
[FIR] Fix expression types in java annotations
...
#KT-61518 Fixed
2023-09-08 07:40:30 +00:00
Kirill Rakhman
b41e5abcfa
[FIR] Fix bounds check for inner classes of generic outer classes
...
#KT-61068 Fixed
#KT-35566
2023-09-06 15:15:07 +00:00
Kirill Rakhman
10e94f90ac
[Tests] Trim contents before checking for FIR_IDENTICAL
2023-09-06 11:32:57 +00:00
Kirill Rakhman
585c3fe4b5
[Tests] Add test for #KT-61717
2023-09-06 08:34:04 +00:00
Kirill Rakhman
393a5d6c14
[FIR] Fix IAE in TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM
...
IllegalArgumentException: class
org.jetbrains.kotlin.psi.KtLambdaArgument is not a subtype of class
org.jetbrains.kotlin.psi.KtExpression for factory
TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM
was reported when TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM was
reported on a FirLambdaArgumentExpression, report it on its
`expression` instead.
#KT-60380 Fixed
2023-09-06 07:38:34 +00:00
Kirill Rakhman
f08d4b8bb1
[FIR] Improve condition for sorting equivalent calls by source first
...
This accommodates for declarations generated by plugins that don't have
a source.
2023-09-05 07:08:28 +00:00
Kirill Rakhman
1c446151e7
[FIR] Skip resolvable package names in front of UNRESOLVED_REFERENCE
...
#KT-55471
2023-09-04 08:05:08 +00:00
Kirill Rakhman
10f7989af6
[FIR] Report UNRESOLVED_REFERENCE on the first unresolved qualifier
...
#KT-55471 Fixed
2023-09-04 08:05:07 +00:00
Kirill Rakhman
40fadac060
[FIR] Remove incorrect code generation comment
2023-09-04 08:05:07 +00:00
Kirill Rakhman
0121686a7f
[RAW FIR] Use KtFakeSourceElementKind.WrappedDelegate in LT
2023-08-31 10:19:33 +00:00
Kirill Rakhman
21f8ba1706
[FIR] Don't report DEPRECATION on self-access in delegated property
...
#KT-60682
2023-08-31 10:19:33 +00:00
Kirill Rakhman
411210b520
[RAW FIR] Use range as source of desugared loop-related statements
2023-08-31 10:19:33 +00:00
Kirill Rakhman
61259ef34b
[FIR] Report missing DEPRECATION on fake sources
...
#KT-60682
2023-08-31 10:19:33 +00:00
Kirill Rakhman
4e041494be
[FIR] Report DEPRECATION when Java declaration is deprecated in javadoc
...
#KT-60682
2023-08-31 10:19:33 +00:00
Kirill Rakhman
ac102dedac
[IR Actualizer] Fix fake-override generation in actual A -> common B -> actual C hierarchy
...
... where C defines a member x and A overrides the member x
#KT-61166 Fixed
2023-08-31 07:52:02 +00:00
Kirill Rakhman
293474ee50
[FIR2IR] Remove unused return value of processOverriddenPropertySymbols
2023-08-31 07:52:01 +00:00
Kirill Rakhman
a42cb2f37f
[FIR] Allow treating candidates from the same non-source module as equivalent
...
This situation occurs in Native metadata compilation and lead to
false-positive OVERLOAD_RESOLUTION_AMBIGUITY reports.
#KT-61461 Fixed
2023-08-29 09:29:52 +00:00
Kirill Rakhman
c30ce4aabe
[FIR] Print operator keyword and token to unresolved diagnostic message
...
#KT-55672 Fixed
2023-08-28 08:12:25 +00:00
Kirill Rakhman
85bb7faf10
[FIR] Report WRONG_NUMBER_OF_TYPE_ARGUMENTS on typealias in super types
...
#KT-59893 Fixed
2023-08-28 08:02:31 +00:00
Kirill Rakhman
bb8a46c3a0
[Test] Parallelize test generation
2023-08-28 08:02:05 +00:00
Kirill Rakhman
844ab4ee74
[FIR] Remove FirExpression.typeRef
...
#KT-61312 Fixed
2023-08-25 10:16:41 +00:00
Kirill Rakhman
12b3fbd39a
[RAW FIR] Refactor destructuring code
...
Move destructuring related code into common to reduce
differences between PSI and LT.
2023-08-24 11:07:46 +00:00
Kirill Rakhman
8de36c416e
[RAW FIR] Put destructuring statements outside of main lambda block
...
This fixes a false positive REDECLARATION when you want to shadow
a destructured lambda parameter inside the lambda.
#KT-60771 Fixed
2023-08-24 11:07:45 +00:00
Kirill Rakhman
7fde5af7f8
[FIR] Rename FirExpression.coneType to resolvedType
2023-08-24 07:54:57 +00:00
Kirill Rakhman
ab6d87a1a2
[FIR] Introduce deprecated FirExpression.typeRef property for compatibility with Compose
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
a5cff6ae36
[FIR] Make type of special expressions immutable
2023-08-24 07:54:57 +00:00
Kirill Rakhman
8d7c5b375e
[FIR] Replace usages of FirExpression.typeRef with coneTypeOrNull
...
#KT-59855 Fixed
2023-08-24 07:54:57 +00:00
Kirill Rakhman
f60d81097c
[FIR] Adapt FIR renderer after FirExpression.coneTypeOrNull introduction
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
bc27feace4
[FIR] Adapt FIR utilities after FirExpression.coneTypeOrNull introduction
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
7223cd1bf3
[FIR] Update custom FIR implementations after FirExpression.coneTypeOrNull introduction
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
b24afa0177
[FIR] Regenerate FIR tree after FirExpression.coneTypeOrNull introduction
...
#KT-59855
2023-08-24 07:54:57 +00:00
Kirill Rakhman
bec39a9258
[FIR] Change FIR structure by replacing FirExpression.typeRef with cone type
...
#KT-59855
2023-08-24 07:54:56 +00:00
Kirill Rakhman
270aa1656f
[FIR] Add default parameter values to ClassId.constructClassLikeType
...
#KT-59855
2023-08-24 07:54:56 +00:00
Kirill Rakhman
e50025f21f
[FIR2IR] Replace FirExpression.typeRef.toIrType with coneType.toIrType
...
#KT-59855
2023-08-24 07:54:56 +00:00
Kirill Rakhman
9ec814b7ad
[FIR] Replace FirExpression.typeRef.coneType (and variants) with FirExpression.coneType
...
#KT-59855
2023-08-24 07:54:56 +00:00
Kirill Rakhman
1472b21993
[FIR] Don't use called declaration as source for call typeRef
...
Otherwise, we end up with sources pointing to different files.
#KT-60760 Fixed
2023-08-24 07:54:56 +00:00
Kirill Rakhman
e96dcef571
[FIR2IR] Convert annotations on local delegated properties
...
#KT-60292 Fixed
2023-08-23 11:09:35 +00:00
Kirill Rakhman
27d25b90b1
[Tests] Fix test data
2023-08-22 16:06:24 +00:00
Kirill Rakhman
d0cc86f52c
[Tests] Update test data after changes to FIR diagnostic messages
2023-08-21 16:28:48 +00:00
Kirill Rakhman
de1c92a32f
[FIR] Update diagnostic messages
2023-08-21 16:28:48 +00:00
Kirill Rakhman
6cd9b5ec98
[FIR] Add guidelines for diagnostic messages
2023-08-21 16:28:48 +00:00