pyos
a475453a01
FIR: enable useCorrectedNullabilityForFlexibleTypeParameters
...
It's necessary for correct substitution of `T & Any` with `T = V..V?`.
2021-09-06 13:11:16 +03:00
pyos
5fec9f34b1
FIR: revert a hack that allows overriding T!! with T
...
1. this should've been only done if the language feature for validating
that is disabled;
2. that feature probably won't matter by the time FIR is stable;
3. it only worked because type enhancement of type arguments is broken
anyway - a more correct hack would be to provide a custom
ConeTypePreparator.
2021-09-06 13:11:01 +03:00
Tianyu Geng
14b66872b5
FIR IDE: hoist up API to get Java getter/setter name of a property...
...
and expose API to get the getter and setter symbols for synthetic Java
properties.
2021-09-05 11:18:58 +03:00
Dmitriy Novozhilov
69c3831865
Rename Deprecation to DeprecationInfo
2021-09-02 15:04:07 +03:00
Dmitriy Novozhilov
762d225bd7
Unify Deprecation classes from :core:compiler.common and :compiler:frontend modules
2021-09-02 15:04:06 +03:00
Mikhail Glukhikh
881b15a677
FIR: use typeWithStarProjections for protected visibility check
2021-08-31 17:32:02 +03:00
Mikhail Glukhikh
a14a00809f
FIR: use lookup tag instead of class id in visibility checker
2021-08-31 17:31:59 +03:00
Mikhail Glukhikh
08e498f1f2
FIR: add proper receiver check for protected visibility #KT-48378 Fixed
2021-08-31 17:31:57 +03:00
Mark Punzalan
cba77452f3
FIR: Add candidates to ConeFunctionCallExpectedError.
2021-08-31 14:59:06 +03:00
Mark Punzalan
16eabf0ff1
FIR: Add ConeDiagnosticWithCandidates and
...
ConeDiagnosticWithSingleCandidate to ConeDiagnostic type hierarchy.
2021-08-31 14:59:06 +03:00
Mark Punzalan
34e6459014
FIR: Ensure that the array set argument (on RHS of =) is always mapped
...
to the last parameter of the set operator function, even if there are
missing or too many index arguments.
2021-08-31 14:52:28 +03:00
Alexander Udalov
6c400ce864
Build: update kotlinLanguageVersion to 1.6
...
Update binary-compatibility-validator dependency to 0.7.1 to allow it to
read Kotlin metadata of version 1.6.
#KT-48445
2021-08-30 19:36:32 +02:00
Denis.Zharkov
112af9b145
FIR: Rework bare types support
...
^KT-48305 Fixed
2021-08-30 16:24:44 +03:00
Dmitriy Novozhilov
3176dd1341
[FIR] Properly create edges from return expression to finally block
...
^KT-48376 Fixed
2021-08-26 10:08:52 +03:00
Dmitriy Novozhilov
16b7735cd6
[FIR] Fix rendering of labels for return edgeds in CFG
2021-08-26 10:08:52 +03:00
Dmitriy Novozhilov
0924216ed2
[FIR] Distinguish stub types for builder inference and for subtyping
...
^KT-48110 Fixed
2021-08-26 10:08:52 +03:00
Dmitriy Novozhilov
7e6e0a3dd6
Remove all type system-specific inheritors of TypeCheckerState
2021-08-26 10:08:51 +03:00
Dmitriy Novozhilov
3f6738c8bc
Remove all type system dependent methods from TypeCheckerState
2021-08-26 10:08:51 +03:00
Dmitriy Novozhilov
e07512a847
Delegate refineType and prepareType in TypeCheckerState to special services
...
This is needed to add ability to create type system independent TypeCheckerState
2021-08-26 10:08:51 +03:00
Dmitriy Novozhilov
8b5548df49
Rename AbstractTypeCheckerContext to TypeCheckerState
2021-08-26 10:08:51 +03:00
Ivan Kochurkin
84c5f58cab
[FIR] Implement UNRESOLVED_REFERENCE_WRONG_RECEIVER
2021-08-25 21:53:23 +00:00
Ivan Kochurkin
34cc7e5199
[FIR] Fix resolving to star import member instead of builtin (^KT-48157 Fixed)
2021-08-25 21:53:23 +00:00
Ivan Kochurkin
bb27ae2b42
[FIR] Fix incorrect resolve of callable reference in function signature (^KT-48304 Fixed)
2021-08-25 21:53:23 +00:00
Tianyu Geng
c940972674
FIR IDE: add shortcut to check if a KtSymbol is deprecated
2021-08-24 20:12:51 +03:00
Mikhail Glukhikh
19ab0ab2f8
FIR: approximate intersections in public position properly
...
#KT-48166 Fixed
2021-08-23 14:18:36 +03:00
Victor Petukhov
261a04b587
Rename "coroutine( inference) *" stuff into "builder inference *"
2021-08-20 01:28:05 +03:00
Igor Yakovlev
7a5a2bfcd7
[FIR] Fix invalid source for anonymous object type
2021-08-19 21:26:07 +02:00
Igor Yakovlev
79b70a6f98
[FIR IDE] Ensure resolved for status when resolving local declarations
2021-08-19 21:26:07 +02:00
Andrey Zinovyev
4661656b8c
[FIR] JVM_PACKAGE_NAME* diagnostics
2021-08-19 15:25:47 +03:00
Andrey Zinovyev
7ba8e0d9cc
[FIR] Add VOLATILE_ON_VALUE/VOLATILE_ON_DELEGATE diagnostic
2021-08-19 15:25:43 +03:00
Tianyu Geng
fb1eac0985
FIR: report SMARTCAST_IMPOSSIBLE on inherited alien properties [KT-48101]
2021-08-18 12:02:02 +03:00
Denis.Zharkov
753ba99b04
FIR: Support enhanced types when checking if Java type is primitive
2021-08-17 21:38:01 +03:00
Ivan Kochurkin
8d764fa50e
[FIR] Add FirPropertyAccessExpression that inherits FirQualifiedAccessExpression
2021-08-13 20:05:43 +03:00
Mikhail Glukhikh
4e4d36f85a
FIR: take lower priority into account during references EagerResolve
...
#KT-48158 Fixed
2021-08-13 11:14:04 +03:00
Mikhail Glukhikh
a21d281c19
FIR: fix capturing on intersection types #KT-48109 Fixed
2021-08-13 11:14:03 +03:00
Mikhail Glukhikh
a04913a197
FIR: use captureFromTypeParameterUpperBoundIfNeeded for argument types
...
#KT-48161 Fixed
2021-08-13 11:14:02 +03:00
Mikhail Glukhikh
b617aca8ee
FIR: fix scope order for super-type resolve #KT-48159 Fixed
2021-08-13 11:14:01 +03:00
Mikhail Glukhikh
2e2edf398c
FIR: consider enum class overridden members non-final #KT-48164 Fixed
2021-08-13 11:13:57 +03:00
Andrey Zinovyev
3ec9599bc4
[FIR][CFG] Partial support of postponed Nothing calls
...
In try blocks, last call won't be completed when building node for it
This is workaround to partially reconstruct nothing stub node for such
calls. Should work for non-local returns in try only.
#KT-48160 Fixed
2021-08-11 21:57:14 +03:00
Ilya Kirillov
ebe96ec79a
FIR IDE: fix reference resolve with invalid number of type args
2021-08-11 18:09:05 +02:00
Tianyu Geng
06ee84f809
FIR checker: report AMBIGUOUS_SUPER
2021-08-10 19:36:44 +03:00
Ivan Kochurkin
5b9ce7e823
[FIR] Use typeArgumentsList from delegatedTypeRef instead of accessing via tree
2021-08-10 19:36:43 +03:00
Tianyu Geng
280c445783
FIR checker: check super reference
...
This change touches the following diagnostics to make them behave closer
to FE1.0
* SUPER_NOT_AVAILABLE
* SUPER_IS_NOT_AN_EXPRESSION
* INSTANCE_ACCESS_BEFORE_SUPER_CALL
* NOT_A_SUPERTYPE
Other than tweaking the diagnostics, this change also alters resolution
by consider marking `super` with mismatched type parameter as
errorenous. As a result, the following code no longer resolves.
```
class A: B() {
fun test() {
super<String>.length
// ^^^^^^ FIR currently resolves this to `String.length`.
// With this change, `length` becomes unresolved
// instead
}
}
```
Also, now we report `UNRESOLVED_LABEL` on unresolved label on `super`
reference, though FE1.0 reports `UNRESOLVED_REFERENCE`.
All the errors above are reported as ConeDiagnostics and hence some
checkers are deleted.
In addition, it also suppresses more downstream (mostly unresolved)
errors if the receiver has errors. FE1.0 doesn't do it for all the cases
we have here. But it seems nicer to reduce these "redundant" unresolved
errors.
2021-08-10 19:36:43 +03:00
Ivan Kochurkin
fd92b851a2
[FIR] Implement PACKAGE_OR_CLASSIFIER_REDECLARATION
...
Fix REDECLARATION positioning
2021-08-10 15:09:25 +00:00
Andrey Zinovyev
1b81018b69
[FIR] Fix overloading of renamed jvm methods
...
#KT-48102 Fixed
2021-08-09 15:22:06 +03:00
Tianyu Geng
cd99c35649
FIR: instantiate type argument to captured type if needed
2021-08-09 14:38:30 +03:00
Dmitriy Novozhilov
1d491fdce6
[FIR] Don't create union call node for lambda from one when branch and call from condition of another
2021-08-06 22:57:18 +03:00
Tianyu Geng
684ef871ee
FIR: unify common special names scattered around the code base
2021-08-06 22:57:17 +03:00
Tianyu Geng
263b876e6e
FIR: extends scope of SENSELESS_COMPARISON
...
FE1.0 only reports SENSELESS_COMPARISON if one of the operand is `null`.
This change makes FIR reports also in case one of the operand has type
`Nothing?`.
In addition, fix handling of type alias in ConeTypeContext#isNullableType
2021-08-06 22:57:17 +03:00
Tianyu Geng
4726dcce40
FIR DFA: smartcast variable to Nothing? on null assignment
...
In order to make resolution still work for members not available from
`Nothing`, we track the type without `Nothing?` and use that for
resolution instead.
2021-08-06 22:57:15 +03:00