Commit Graph

3252 Commits

Author SHA1 Message Date
Mikhail Glukhikh 393e99fa44 FE: don't run overload-by-lambda-return-type with unsuccessful candidates
Related to KT-52927
2022-09-09 16:12:24 +00:00
Mikhail Glukhikh e02fd8f4a8 FE: don't run builder inference in UNTIL_FIRST_LAMBDA mode
#KT-52927 Fixed
2022-09-09 12:44:39 +00:00
Dmitriy Novozhilov 40b13898bd [FIR] Don't set source of inferred type from expected type 2022-09-07 07:57:37 +00:00
Dmitriy Novozhilov e1fd184d14 [FIR] Fix missing initialization of backingField for properties from primary constructor 2022-09-07 07:57:37 +00:00
Dmitriy Novozhilov 194741b96b [FIR] Remove incorrect FirClassSymbol<*>.superConeTypes utility
Replace all usages with member `FirClassSymbol.resolvedSuperTypes`
2022-09-07 07:57:37 +00:00
Nikolay Lunyak 3d9c77efa8 [FIR] Add DNN checks
Merge-request: KT-MR-7000
Merged-by: Nikolay Lunyak <lunyak.kolya@mail.ru>
2022-09-01 14:25:07 +00:00
Simon Ogorodnik 8f51c51eee FIR. Fix smart-cast expression unwrapping in plus with assign resolve 2022-08-26 14:57:06 +00:00
Dmitriy Novozhilov 66117367ad [FIR] Transform context receivers on properties during type resolution stage
^KT-53706 Fixed
2022-08-24 15:36:42 +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
Mikhail Glukhikh b78106e437 Don't report INFERRED_..._INTO_EMPTY_INTERSECTION with explicit arguments 2022-08-19 14:01:38 +00:00
Mikhail Glukhikh fb1c80a7c9 K2: discriminate synthetic 'Enum.entries' during resolve 2022-08-19 10:08:11 +00:00
Dmitriy Novozhilov bb38690273 [FIR] Introduce FirAssignExpressionAltererExtension
This extension can be used to override resolution of assign statements
  with custom statement
2022-08-19 07:44:09 +00: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
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
Mikhail Glukhikh 3079be75d4 K2: don't filter Enum.entries depending on language settings 2022-08-12 09:35:28 +00:00
Mikhail Glukhikh 7333589663 K1/K2: add Enum.entries unconditionally and filter them out in tower
Before this commit, we added Enum.entries only in case when
LanguageFeature.EnumEntries was ON (with an exception in K1/Java case).
In this commit we add Enum.entries unconditionally, and in case
the language feature is OFF we filter them out during tower resolve.
2022-08-12 09:35:27 +00:00
Ilya Kirillov 0748f28efe [FIR] rename ensureResolve -> lazyResolveToPhase as it better describes function semantics 2022-08-10 22:49:18 +02:00
Ilya Kirillov 28b159ef85 [LL FIR] fix lazy resolve of accessors with implicit types
Before the change, such accessors would have implicit types event if the corresponding property had a resolved one
2022-08-10 22:49:17 +02:00
Ilya Kirillov 97853016d5 [LL FIR] fix lazy resolve of accessors generated by delegation
Before the change, such accessors would have implicit types event if the corresponding property had a resolved one
2022-08-10 22:49:16 +02:00
Simon Ogorodnik 2a16fe1d0f FIR: Fix overloading by type-arguments
In K1, upper bound violated causes candidate to have lower applicability
due to constraint errors, in K2 however constraint errors has to be
reported explicitly
2022-08-04 22:56:08 +02:00
Mikhail Glukhikh d0c518013a Document&use CandidateApplicability.shouldStopResolve/isSuccess properly 2022-07-27 15:29:47 +00:00
Mikhail Glukhikh 220a8e47f4 K2: de-prioritize invoke on dynamic receiver 2022-07-27 15:29:45 +00:00
Mikhail Glukhikh 0611f3b8e7 CandidateApplicability: add K1/K2 prefixes when applicable 2022-07-27 15:29:44 +00:00
Mikhail Glukhikh 577b9686c1 K2: fix using compatibility resolve for SAM constructors 2022-07-27 15:29:42 +00:00
Mikhail Glukhikh 32a73968de Stop tower resolve in K2 in more similar manner with K1 2022-07-27 15:29:41 +00:00
Ivan Kochurkin c47148b8fb [FIR] Remove FirJsSyntheticNamesProvider and FirNativeSyntheticNamesProvider.kt 2022-07-25 23:30:09 +02:00
Denis.Zharkov 7f7e5c5975 FIR: Fix candidate receivers orders when choosing a context receiver
^KT-53257 Fixed
2022-07-25 15:11:29 +00:00
Mikhail Glukhikh 5445f4043a K2: expand types during smartcasting to prevent redundant intersections
#KT-53184 Fixed
2022-07-22 16:39:52 +00:00
Mikhail Glukhikh bc396b9765 K2: don't report RETURN_TYPE_MISMATCH on last statement returns
#KT-53198 Fixed
2022-07-22 16:39:51 +00:00
Ilya Kirillov a0f0fa5a47 [Analysis API FIR] fix candidate collection for delegatedConstructor call
^KTIJ-20446
2022-07-22 00:58:59 +02:00
Ilya Kirillov e8bf8cb182 [Analysis API FIR] fix type rendering for type with "Cannot infer type for parameter" error 2022-07-22 00:58:58 +02:00
Mikhail Glukhikh 623f832bfd FIR: fix private-to-this corner case with outer class type parameter
Related to KT-49875
2022-07-15 07:57:42 +00:00
Mikhail Glukhikh 83200f8774 FIR: Support inferring PRIVATE_TO_THIS visibility see KT-49875 2022-07-15 07:57:41 +00:00
Mikhail Glukhikh c92d685415 FIR: postpone callable reference candidate in default argument case
#KT-53019 Fixed
2022-07-12 12:22:34 +00:00
pyos 5a2ec4a0d5 FIR CFG: merge data flow if called-in-place lambda may not be called 2022-07-11 18:11:30 +03:00
pyos 06c7572ee5 FIR CFG: process called-in-place lambdas as loops 2022-07-11 18:11:30 +03:00
pyos 8214e4f806 FIR CFG: check lambda concurrency by data flow, not control flow
var p: String? = something
    if (p != null) {
      foo(
        run { p = null; n() },
        // This lambda executes strictly after the one above by CFG,
        // but data flow for type inference comes from before the call
        // so p would get smartcasted if not forbidden.
	run { p.length; 123 }
      )
    }
2022-07-11 18:11:30 +03:00
Victor Petukhov 3ed87c29c7 [FE 1.0] Substituted possible fixed type variables after completion in accordance with @OverloadResolutionByLambdaReturnType
^KT-48031 Fixed
2022-07-04 12:05:57 +00:00
Mikhail Glukhikh 4737bb07df FIR: look for conflicting declarations more precisely 2022-07-01 15:07:48 +00:00
Dmitriy Novozhilov e54c6eeafc [FIR] Introduce extension for custom SAM conversions 2022-06-27 08:11:31 +00:00
Dmitriy Novozhilov fcc5b804a8 [FIR] Add forgotten resolution of annotations on get class calls 2022-06-27 08:11:31 +00:00
Denis.Zharkov d8dad02f08 FIR: Fix internal error on SAM with not-computed return type
^KT-52691 Fixed
2022-06-24 08:33:22 +00:00
Mikhail Glukhikh 481607df43 FIR: support proper argument mapping for substitution overrides
Related to KT-52762
2022-06-23 18:18:42 +00:00
Dmitriy Novozhilov eb453dc96b [FIR] Expand typealiases in OverloadConflictResolver
^KT-52825 Fixed
2022-06-21 14:10:38 +00:00
Dmitriy Novozhilov ed8187109a [FIR] Fix forgotten level changes during building CFG for !! 2022-06-21 14:10:37 +00:00
Mikhail Glukhikh 065e852199 FIR: support more precise diagnostics about parameter names
#KT-52762 Fixed
2022-06-20 11:28:55 +00:00
Ivan Kochurkin 1a398e89ec [FIR] Add attributes to ConeErrorType for correct annotations resolving 2022-06-17 23:26:19 +00:00
Ivan Kochurkin ffbb23661d [FIR] Report UNSUPPORTED for default value in function type 2022-06-17 23:26:18 +00:00