Commit Graph

270 Commits

Author SHA1 Message Date
Nikolay Lunyak f671a8c8a7 [FIR] Rename FirAnnotation.coneClassLikeType to unexpanded
The same reason
2023-01-17 06:26:36 +00:00
Nikolay Lunyak 0c86294ca4 [FIR] Rename FirAnnotation.classId to unexpandedClassId
This makes the eye catch each such thing in the source.
OptIn isn't that catchy, plus it may be declared
for the whole file, so noticing may be harder
2023-01-17 06:26:36 +00:00
Nikolay Lunyak 0c00e79024 [FIR] Support typealiases in FirTypeAnnotationChecker
`directExpansionType` is needed here for cases like
`typealias S = @S Suppress`. Otherwise, `fullyExpandedType`
would cache the same typealias
2023-01-17 06:26:34 +00:00
Ilya Kirillov 3afb93ca31 [FIR] fix resolve contract violation from ConeTypeContext.getValueClassProperties
^KT-54890
2023-01-13 21:32:52 +00:00
Ilya Kirillov 6204e43f3f [FIR] fix resolve contract violation from FirTypeParameter.eraseToUpperBound
^KT-54890
2023-01-13 21:32:52 +00:00
Ilya Kirillov 1bbcae5ed2 [FIR] fix resolve contract violation from scopes
We cannot call lazy resolve to STATUS phase from scopes as scopes may be accessed on a STATUS phase or earlier

^KT-54890
^KTIJ-23587 fixed
2023-01-13 21:32:51 +00:00
Dmitriy Novozhilov 42db0b14f0 [FIR] Move all type construction utilities into one file 2023-01-12 17:45:40 +00:00
Dmitriy Novozhilov ce8489a8a5 [FIR] Add ability to create accessor to declaration attribute on symbol 2023-01-12 17:45:40 +00:00
Dmitriy Novozhilov 6783621eb0 [FIR] Change API for generating nested classes from plugins
`FirDeclarationGenerationExtension.generateClassLikeDeclaration` was split
  into two functions: one for generating top level classes, and one for
  nested classes. Such change reduces verbosity and error-proness of
  this extension and also allows to smoothly run plugins on local classes

^KT-55248 Fixed
2023-01-12 17:45:39 +00:00
Dmitriy Novozhilov ed867af01d [AA LC] Expand aliases of type arguments during conversion to KtType
^KT-55781
2023-01-12 17:45:09 +00:00
Dmitriy Novozhilov e7148daad2 [FIR] Properly substitute arguments of error types 2023-01-12 17:45:06 +00:00
Dmitriy Novozhilov edbf199f84 [FIR] Remove redundant lookupTag from AbstractConeSubstitutor.substituteArgument 2023-01-12 17:45:06 +00:00
Dmitriy Novozhilov bd26c29229 [FIR] Resolve arguments of error types during type resolution 2023-01-12 17:45:06 +00:00
Mikhail Glukhikh 949a39b80f K2: add checker detecting protected Java field shadowed by a property 2023-01-09 21:37:22 +00:00
Mikhail Glukhikh 59bafedd8a K2 resolve: prefer derived class property to base class field
#KT-50082 Fixed
2023-01-09 21:37:21 +00:00
pyos 923837f26b FIR: keep nullability when serializing suspend function types
No clue where to put the test for that since diagnostic tests, even
multi-module ones, never touch the metadata serializer. So the test is
a bytecode text one pretending to be about nullability annotations even
though it also affects what resolution in another module will do.
2023-01-06 13:54:35 +01:00
Mikhail Glukhikh 1344a9b1bb ConeTypeIntersector: preserve raw & dynamic types as is 2023-01-04 18:29:34 +00:00
Mikhail Glukhikh 55fdb43620 ConeTypeIntersector: drop obsolete comment 2023-01-04 18:29:34 +00:00
Mikhail Glukhikh b5111d101e ConeTypeIntersector: reuse isNullableType from type context 2023-01-04 18:29:34 +00:00
pyos ee6af9af5f FIR: intersect flexible type bounds separately
^KT-54522 Fixed
2023-01-04 18:29:33 +00:00
Mikhail Glukhikh 8bc9fd91d5 ConeTypeIntersector: inline flatIntersectionTypes 2023-01-04 18:29:33 +00:00
pyos 45e884ec67 FIR: refactor ConeTypeIntersector 2023-01-04 18:29:33 +00:00
Kirill Rakhman 721a37f7e7 K2: implement FirLateinitIntrinsicApplicabilityChecker ^KT-55495 Fixed 2023-01-04 14:42:43 +00:00
Mikhail Glukhikh 0d50f71fb8 K2: expand type aliases in annotation position #KT-55615 Fixed 2023-01-04 10:06:39 +00:00
Denis.Zharkov 24bd7e5eef K2: Optimize use-site member and intersection scopes
Avoid creating cache keys for names that are definitely absent
2022-12-28 18:22:47 +00:00
Denis.Zharkov db3b7c4021 K2: Optimize ConeInferenceContext::containsInternal
We don't call it recursively on recursive types,
thus 'visited' set looks irrelevant.
2022-12-28 17:39:28 +00:00
Ilya Kirillov 396ac6f5e3 [FIR] make FirCorrespondingSupertypesCache to be thread safe
^KT-50244
2022-12-27 13:27:24 +00:00
Dmitriy Novozhilov b53c4a6353 [FIR] Introduce some typed FirReference.toResolvedXXXSymbol utilities 2022-12-15 12:12:20 +00:00
Dmitriy Novozhilov cffc32ec76 [FIR] Fir utils for FirReference in package org.jetbrains.kotlin.fir.references 2022-12-15 12:12:20 +00:00
Mikhail Glukhikh df5aa59185 K2: Don't use FirTypeParameterSymbol.resolvedBounds() from inference 2022-12-12 16:21:05 +00:00
Dmitriy Novozhilov aaf0a1f396 [FIR] Introduce shouldNotBeCalled utility function 2022-12-01 07:29:38 +00:00
Evgeniy.Zhelenskiy 9f01ccc304 [IR] Support user-defined equals for MFVC
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
2022-11-30 18:55:36 +00:00
Yan Zhulanow c7f9d7f027 [FE] Pass the derived class tag to more places (KTIJ-22808) 2022-11-30 04:12:27 +00:00
Yan Zhulanow 0e050ae7f1 [FE] Consider derived class tag on caching substitution scopes 2022-11-30 04:12:27 +00:00
Yan Zhulanow fe69b21aed [FE] Fix 'containingClassForStaticMemberAttr' for fake overrides (KTIJ-22808) 2022-11-30 04:12:26 +00:00
Dmitriy Novozhilov ac7fddaad5 [FE] Always infer upper types to intersection types in K2...
...and always use old algorithm for K1

^KT-51221
2022-11-29 12:25:44 +00:00
Mikhail Glukhikh 237f357016 FIR: don't copy initializer for field override, unwrap it instead 2022-11-28 17:27:50 +00:00
Mikhail Glukhikh c698d060c6 FIR2IR: support static fake overrides for fields (related to KT-53441)
#KT-54921 Fixed
2022-11-28 17:27:50 +00:00
Ilya Chernikov cc9a7480a2 K2 Scripting: add FIR2IR conversion for FirScript 2022-11-26 18:01:49 +00:00
Ilya Chernikov a3a1550933 K2 scripting: add initial scripting support to K2 frontend 2022-11-26 18:01:48 +00:00
Ivan Kochurkin 194d1cfccf [FIR] Filter out incorrect library provides for dependencyProviders
Get rid of providers duplication
2022-11-23 18:29:29 +00:00
Ilya Kirillov 7781ad67d4 [FIR] introduce FirValueParameter.containingFunctionSymbol
^KT-55034 fixed
2022-11-22 18:25:30 +01:00
Dmitriy Novozhilov eb8ce449e3 [FIR] Don't lose flexible types during capturing from expression 2022-11-22 15:46:22 +00:00
Dmitriy Novozhilov 01c6c7dc59 [FIR] Properly approximate return type of callable declarations
- approximate intersection types in all non-local declarations
- approximate local types in non-private non-local declarations
2022-11-22 15:46:20 +00:00
Dmitriy Novozhilov 991d8c18aa [FIR] Fix incorrect inference of return type of anonymous functions
Also remove incorrect subtype check checkers

Test unsafeVarianceInAliasedFunctionalType.kt started to fail because
  of KT-54894. This bug existed before, changes from this commit just
  unhided it (previously it was hidden because incorrect subtype check
  in `isSubtypeForTypeMismatch` which is used by FirFunctionReturnTypeMismatchChecker
2022-11-22 15:46:19 +00:00
Dmitriy Novozhilov 32f6b71525 [FE] Add ability to configure PublicDeclaration type approximation configuration
This configuration allows to choose what to do with local and anonymous types
2022-11-22 15:46:18 +00:00
Dmitriy Novozhilov 82c39187f6 [FIR] Refactor: rename function 2022-11-22 15:46:18 +00:00
Ilya Kirillov b6481ed891 [FIR] do not use FirValueParameter for function type parameter
As it is a different abstraction, introduced FirFunctionTypeParameter instead

Also, fix syntax checkers for function type parameter

^KT-55035 fixed
2022-11-21 16:17:51 +00:00
Dmitrii Gridin 86422d0944 [FIR] FirReceiverParameter: rename type to typeRef
^KT-54417
2022-11-17 09:50:17 +00:00
Dmitrii Gridin be7d282974 [FIR] introduce FirReceiverParameter
^KT-54417
2022-11-17 09:50:09 +00:00