Commit Graph

177 Commits

Author SHA1 Message Date
Mikhail Glukhikh f68f06a93f FIR visibility checker: remove redundant session from isVisibleForOverriding 2022-09-29 08:34:14 +00:00
Mikhail Glukhikh bcd7a531b9 K2: filter invisible overridden in status resolver & FIR2IR
Related to KT-53197
2022-09-29 08:34:13 +00:00
pyos 3a5d75fd22 K2: introduce platform-specific visibility checks for overrides + tests
Related to KT-53197
2022-09-29 08:34:13 +00:00
Simon Ogorodnik 8bdb8ba232 K2: Fix type-alias expansion during suspend function type serialization
When suspend function type is serialized, there is special logic that
adds Continuation parameter, before doing so, type-aliases has to be
expanded, attributes for resulting type should also derive from
expanded type

KT-53193, KT-54062
2022-09-16 20:42:03 +00:00
pyos be5c4a91a4 FIR/FE1.0: keep flexibility when approximating local types 2022-09-14 08:11:04 +00:00
pyos 062308c7c1 FIR: keep nullability when approximating local types
^KT-30054 Open
2022-09-14 08:11:04 +00:00
pyos acce055fc4 FIR: fix incorrect handling of suspend function typealiases again
The previous attempt stopped this code from throwing an exception during
serialization, but the arity is still wrong so an exception is now throw
when reading the serialized type.

^KT-50997 Fixed
2022-09-12 17:45:40 +02:00
Dmitriy Novozhilov 671083c701 [Serialization] Implement serialization checker for K2 version of plugin
^KT-53178 Fixed
2022-09-07 07:57:38 +00:00
Dmitriy Novozhilov e1fd184d14 [FIR] Fix missing initialization of backingField for properties from primary constructor 2022-09-07 07:57:37 +00:00
Mikhail Glukhikh 3bdd52b64a [FE 1.0] Return to the old type intersection emptiness check
This reverts commit 8227c4b603.
#KT-53656 Fixed
2022-09-06 17:57:01 +00:00
Roman Golyshev 16cb3064c8 [FIR] Resolve value class constructor to TYPES before using its params
Right now it is the easiest way to ensure that all the parameters are
resolved. After KT-53573 is fixed, we might use `resolvedReturnTypeRef`
on each parameter individually instead

Also, add `toString` implementation to `ValueClassRepresentation`
classes, so they are properly rendered in testdata

^KTIJ-22630 Fixed
2022-08-30 13:49:40 +00:00
Nikita Bobko 8f79e833a8 Drop all redundant kotlin-reflect, kotlin-reflect-api dependencies
Review: https://jetbrains.team/p/kt/reviews/6753

All redundant I managed to find, of course.

Why: I'm going to process all reflect dependencies in the next commits.
Cleanup reflect dependency before processing.

They are redundant because:
1. if `compileOnly` then compilation didn't break after dropping the
   dependency
2. if `test*` then tests didn't break after dropping the dependency.
3. `analysis/analysis-api-fir/analysis-api-fir-generator/build.gradle.kts`
   `compiler/fir/checkers/checkers-component-generator/build.gradle.kts`
   Drop `implementation(project(":kotlin-reflect-api"))` because the
   module already depends on
   `implementation(project(":kotlin-reflect"))`
4. `compiler/daemon/daemon-client/build.gradle.kts`. Drop `runtimeOnly`
   because after dropping `compileOnly` compilation didn't break (so
   `runtimeOnly` looks suspicious). Less safe than 1-3
2022-08-22 15:42:57 +02:00
Arseniy Terekhov 539e5f82e2 [FIR] DeprecationProvider: inline builder, fix named arguments, cosmetic 2022-08-19 07:37:55 +00:00
Arseniy Terekhov a80870bc8f [FIR] DeprecationsProvider: caching results 2022-08-19 07:37:54 +00:00
Arseniy Terekhov 25fc948d95 [FIR] DeprecationsProvider: make evaluation of deprecations on demand 2022-08-19 07:37:54 +00:00
Leonid Startsev 6893e210fb [K2] Remove typeWithStarProjections in favor of constructStarProjectedType 2022-08-17 11:43:40 +00:00
Leonid Startsev 638665d9b0 Refactor typeWithStarProjections() so it uses FirClassSymbol instead of FirClass
It removes necessity to access .fir in plugins
2022-08-17 11:43:40 +00:00
Simon Ogorodnik 513af2dfbc FIR. Refactor smart-cast representation in FIR tree
Make smart-casts non-transparent expression without delegation
to underlying FirQualifiedAccessExpression, as children delegation in
fir tree has unclear semantics
Remove two different kinds of tree nodes for smart-casts
2022-08-15 21:46:11 +00:00
Ilya Kirillov 0748f28efe [FIR] rename ensureResolve -> lazyResolveToPhase as it better describes function semantics 2022-08-10 22:49:18 +02:00
Mikhail Glukhikh 2598ecf23f Revert "K2: fix internal visibility checks for overrides #KT-53197 Fixed"
This reverts commit 166965e559.
2022-08-05 18:26:59 +02:00
Mikhail Glukhikh 166965e559 K2: fix internal visibility checks for overrides #KT-53197 Fixed 2022-08-03 07:52:14 +00:00
Victor Petukhov 8227c4b603 [FE 1.0] Use the new type intersection emptiness check
Also introduced compatibility mode to preserve compatibility for is/as/equality checks

^KT-29316 Related
2022-08-02 10:29:37 +00:00
Ivan Kochurkin c47148b8fb [FIR] Remove FirJsSyntheticNamesProvider and FirNativeSyntheticNamesProvider.kt 2022-07-25 23:30:09 +02:00
Mikhail Glukhikh d16e5e5e50 FIR: Support checking PRIVATE_TO_THIS visibility #KT-49875 Fixed 2022-07-15 07:57:41 +00:00
Mikhail Glukhikh a82baf87cb FIR renderer: extract separate ConeTypeRenderer 2022-07-14 09:38:33 +00:00
Mikhail Glukhikh 4737bb07df FIR: look for conflicting declarations more precisely 2022-07-01 15:07:48 +00:00
Ivan Kochurkin fd2b4fd497 [FIR] Fix false positive USELESS_CAST on stub types, ^KT-50293 Fixed 2022-06-17 23:26:18 +00:00
Dmitriy Novozhilov d527b00dfc [FIR] Create generated declared scope only for classes from sources and plugins 2022-06-07 14:12:27 +00:00
Dmitriy Novozhilov a84ece7233 [Lombok] Add implementation of plugin for FIR 2022-06-07 14:12:25 +00:00
Dmitriy Novozhilov e58e86932c [FIR] Pass declared member scope to methods of declaration generation extension 2022-06-07 14:12:24 +00:00
Dmitriy Novozhilov 8acb8aa043 [FIR] Introduce utility service for plugins for matching common predicate pattern 2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov 399aaeca9d [FIR] Implement proper copy utility for FirDeclarationStatus 2022-06-07 14:12:13 +00:00
Mikhail Glukhikh eaa77b5af6 [FIR JS] Generate dynamic FIRs via DynamicScope 2022-06-02 13:47:26 +00:00
Nikolay Lunyak 611691ec70 [FIR JS] Support smart casts for dynamic 2022-06-02 13:47:25 +00:00
Nikolay Lunyak be9e97d044 [FIR] Introduce ConeDynamicType 2022-06-02 13:47:23 +00:00
Denis.Zharkov 461d91a10e FIR: Rework checking dispatch receivers applicability
Using `ownerLookupTag` might be wrong in case of private constuctors
 of inner classes: their owner is an Inner class, but expected
 dispach receiver is Outer
2022-06-01 16:02:31 +00:00
Denis.Zharkov ccc32b4e3b FIR: Refine visibility check for private methods defined in a class
- use-site should be contained within the class that owns callee symbol
- class-representative of dispatch receiver value
should be exactly the same as a container class of a callee (not its subtype)
2022-06-01 16:02:29 +00:00
Roman Golyshev 9fe0f055c5 [FIR] Get rid of ensureResolvedForCalls completely
The problem that this function has been solving (resolving declarations
to a somewhat adequate resolve phase) should be solved in another place;
moreover, right now it is the only scope that uses that function, which
is non-consistent
2022-06-01 00:23:11 +04:00
Ivan Kochurkin 792aa24a04 [FIR] Throws by star import wins builtin Throws, ^KT-52407 Fixed, ^KT-52517 Fixed 2022-05-29 23:41:27 +03:00
Victor Petukhov 6a34b184ac [FE] Introduce warnings on possible empty intersection types, and improve errors reporting in general
^KT-52361 Fixed
2022-05-27 15:14:23 +00:00
Dmitriy Novozhilov d66748d011 [FIR] Extract expect actual matching into separate phase 2022-05-20 13:33:04 +00:00
Denis.Zharkov 9f7876efb6 FIR: Avoid potentially dangerous checks at makesSenseToBeDefinitelyNotNull
Sometimes, it might be called before type parameter bounds are initialized
or even before the symbols are bound to FIR
In such cases, we just assume it makes sense to create DNN there
2022-05-19 16:54:06 +00:00
Denis.Zharkov 784a911d1a FIR: Minor. Clarify some names at FirTypeIntersectionScopeContext 2022-05-19 16:54:03 +00:00
Denis.Zharkov 20847d25cc FIR: Fix applying attributes at T.withNullability 2022-05-19 16:54:03 +00:00
Denis.Zharkov a0c92db819 FIR: Support DNN types during unification of bare types
See org.jetbrains.kotlin.test.runners.FirDiagnosticTestGenerated.Resolve.Types.testBareWithFlexibleArg
2022-05-19 16:54:00 +00:00
Denis.Zharkov f70ae2df3a FIR: Refine inference constraints when type variable in flexible position
That issue might be fixed via changing
TypeVariableMarker.shouldBeFlexible at ConeConstraintSystemUtilContext
but this and some other tricks have been added because of incorrect
handling of constraints where type variable has a flexible bound

^KT-51168 Fixed
2022-05-19 16:53:59 +00:00
Ivan Kylchik a993939127 [FIR] Allow constant values for IntrinsicConstEvaluation declarations 2022-05-18 21:19:55 +03:00
Denis.Zharkov b87412c5af FIR2IR: Fix substitution work for context receivers 2022-05-13 18:04:02 +00:00
Dmitriy Novozhilov 2796d21ec6 [FIR] Create snapshot of tower data context for postponed callable referneces
This fixes an issue if type of some implicit receiver was changed because
  of changed smartcast in outer scope

^KT-51228 Fixed
2022-05-12 12:15:31 +03:00
Ilya Kirillov 6e0eba7e00 [low level api] fix ISE: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl for CheckDslScopeViolation 2022-05-11 13:14:44 +02:00