Commit Graph

209 Commits

Author SHA1 Message Date
Denis.Zharkov 550d24f8c6 FIR: Introduce ContextFunctionTypeParams type attribute 2022-04-06 16:05:26 +00:00
Denis.Zharkov f3e28c3767 FIR: Prepare ConeAttribute infrastructure for non-singleton attrs 2022-04-06 16:05:25 +00:00
Dmitriy Novozhilov 52b72a7dac [FIR] Implement Int -> Long conversions for literals and operators over them
^KT-38895
^KT-50996 Fixed
^KT-51000 Fixed
^KT-51003 Fixed
^KT-51018 Fixed
2022-02-07 13:36:36 +03:00
Dmitriy Novozhilov b980f5ab32 [FIR] Introduce new kind of integer literal types for constant operator calls 2022-02-07 13:36:35 +03:00
Dmitriy Novozhilov 10c38ba47c [FIR] Reorganize cone type utilities
Make some overrides of members of Cone types final
2022-02-07 13:36:34 +03:00
Dmitriy Novozhilov 0bd3e8f418 [FIR] Rename ConeClassErrorType to ConeErrorType, drop ConeKotlinErrorType alias 2022-02-07 13:36:33 +03:00
Dmitriy Novozhilov 9c6292db6f [FIR] Split cone types declarations into multiple files 2022-02-07 13:36:33 +03:00
Mikhail Glukhikh 27d4c745cb ConeSimpleKotlinType: introduce & use unwrapDefinitelyNotNull 2022-02-03 19:12:17 +03:00
Mikhail Glukhikh 81ff9b820a FIR: make ConeSimpleKotlinType the only original for definitely not-null 2022-02-03 19:12:16 +03:00
Irene Dea 3c4989b672 Address JDK8/JDK6 issues with computeIfAbsent 2022-01-08 15:26:44 +03:00
Irene Dea 62bde2d686 Move AttributeArray to compiler.common so frontend extension can share it 2022-01-08 15:25:06 +03:00
Vyacheslav Gerasimov f7a9065b75 Build: Use intellij maven repo instead of downloaded IDEA
#KTI-82
2021-12-16 21:48:23 +03:00
Simon Ogorodnik 9e8727e6a8 FIR Minor: Reformat 2021-12-15 22:23:14 +03:00
Simon Ogorodnik bb13583862 FIR: Rename stub type for builder inference 2021-12-15 22:23:13 +03:00
Simon Ogorodnik df9da371cb FIR: Fix synthetic type variables to independent stub types 2021-12-15 22:23:11 +03:00
Simon Ogorodnik 3fadf1cb46 FIR: Avoid creating new stub type constructors on nullability replacing 2021-12-15 22:22:59 +03:00
Simon Ogorodnik 196be93d42 FIR: Add separate type constructor to stub types 2021-12-15 22:22:54 +03:00
Mikhail Glukhikh 2ba2453062 ConeFlexibleType: statically require to have simple bounds 2021-12-06 18:07:19 +03:00
Denis.Zharkov e26abbbbb0 FIR: Implement ConeTypeVariableType::equals/hashCode manually
`typeAttributes` are not considered as a part of equality for other type kinds
2021-11-26 19:39:44 +03:00
Dmitriy Novozhilov 8cdddbfd9d [FIR] Implement checkers for FIR parcelize plugin
There is one of checks left unimplemented (FirParcelizePropertyChecker.checkParcelableClassProperty)
  because it requires huge commonization of detecting which type can be
  serialized and which not, which is not prioritized job for now
2021-11-23 15:01:31 +03:00
Ivan Kochurkin 291bc74676 [FIR] Add CANNOT_CHECK_FOR_ERASED 2021-11-12 15:20:43 +03:00
Dmitriy Novozhilov bee44c6e0f [FIR] Split :compiler:fir:resolve module into three different modules
Those modules are:
- :compiler:fir:providers, which contains Fir and Symbol providers,
    scopes, and different utilities used by them
- :compiler:fir:semantics, which contains different abstractions and
    entities which are used in resolution and in checkers
- :compiler:fir:resolve, which contains all stuff related to resolution
    and inference

There are two pros of this change:
1. It may increase gradle build, because it allows to compile :fir:resolve
  and :fir:checkers modules in parallel
2. Logic of working FIR (scopes, providers, DFA logic system, etc) is
  now separated from logic of resolution phases, so for example checkers,
  which are depend on scopes physically will not be able to run resolve
  in any way
2021-10-18 11:10:47 +03:00
Mark Punzalan 4f0b52b653 FIR: Transform annotations on type arguments during body resolve. 2021-10-12 18:56:32 +03:00
Dmitriy Novozhilov 38877ba842 [FIR] Implement extension for providing additional type attributes 2021-10-12 17:26:32 +03:00
Dmitriy Novozhilov 26fa772846 [FIR] Add ability to generate members and nested classifiers for existing classes 2021-10-12 17:26:30 +03:00
Ilya Kirillov cdde765ad9 FIR: precise lookupTag parameter of ConeTypeVariableType as it always accepts ConeTypeVariableTypeConstructor 2021-09-30 01:45:55 +03:00
Tianyu Geng 14452661cc FIR IDE: makes HL ref shortener tolerate missing type arg in type refs 2021-09-29 22:24:25 +02:00
Tianyu Geng 951812f130 FIR checker: record whether type mismatch is due to nullability
This is useful for downstream quickfixes.
2021-09-17 01:59:01 +03:00
Dmitriy Novozhilov 37b427c656 [FIR] Combine type attributes in typealias expansion
^KT-48651 Fixed
2021-09-15 17:11:31 +03:00
Dmitriy Novozhilov 5c2a3bb78e [FIR] Move duplicating names and classIds to StandardClassIds 2021-09-15 17:11:29 +03:00
Denis.Zharkov dc79d8641b Change rendering for definitely non-nullable types from T!! to T & Any
^KT-26245 In Progress
2021-08-31 15:41:14 +03:00
Mark Punzalan 16eabf0ff1 FIR: Add ConeDiagnosticWithCandidates and
ConeDiagnosticWithSingleCandidate to ConeDiagnostic type hierarchy.
2021-08-31 14:59:06 +03:00
Denis.Zharkov 112af9b145 FIR: Rework bare types support
^KT-48305 Fixed
2021-08-30 16:24:44 +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
Mikhail Glukhikh 19ab0ab2f8 FIR: approximate intersections in public position properly
#KT-48166 Fixed
2021-08-23 14:18:36 +03:00
Denis.Zharkov 753ba99b04 FIR: Support enhanced types when checking if Java type is primitive 2021-08-17 21:38:01 +03:00
Dmitriy Novozhilov a6edd852ff [FIR] Report NON_EXHAUSTIVE_WHEN_STATEMENT/NO_ELSE_IN_WHEN for when's on logical types
^KT-47709 In Progress
2021-07-20 13:33:44 +03:00
Andrey Zinovyev de3f31cf78 [FIR] Partial implementation of DEPRECATION(_ERROR) diagnostics
No support for inheritance deprecations
and deprecations in qualifier's parts
2021-07-07 16:19:28 +03:00
Mikhail Glukhikh bd39e457a7 FIR: make ArrayMapOwner.arrayMap really protected 2021-06-11 22:03:32 +03:00
Mikhail Glukhikh 0e63484738 Fix OptIn marker usages in code according to new limitation 2021-06-08 11:37:35 +03:00
Denis.Zharkov c420957eac FIR: Report INFERENCE_NO_INFORMATION_FOR_PARAMETER diagnostic 2021-06-07 15:25:45 +03:00
Ivan Kochurkin ca970f0a8b [FIR] Add ConeKotlinTypeConflictingProjection, return it from substituteArgument instead of ConeStarProjection in appropriate cases, remove plus operator from ProjectionKind 2021-06-03 18:24:30 +03:00
Mikhail Glukhikh 632a9d66d1 FIR: introduce isPrimitive / isPrimitiveOrNullablePrimitive helpers 2021-05-13 16:13:42 +03:00
Mark Punzalan 9cf5ac1fbd FIR: Render "?" on nullable function types. 2021-04-26 15:11:37 +03:00
Dmitriy Novozhilov 564de2790f [FIR] Resolve array literals in independent context 2021-04-16 11:12:56 +03:00
Dmitriy Novozhilov 7c6a9aa963 [FIR] Store cachedExpandedType in WeakPair instead of usual Pair
WeakPair is a renamed OneElementWeakMap
2021-04-15 10:30:29 +03:00
Mikhail Glukhikh fa4d664a18 FIR initializer: don't report type mismatch in SomeInt = Int case 2021-04-13 21:36:34 +03:00
Mikhail Glukhikh e2cc0510de Rewrite FirDeclarationDataRegistry.data to avoid type parameter problems 2021-04-09 07:56:35 +03:00
Igor Yakovlev d05ef3a635 [FIR] Move standard class id's into common module 2021-04-07 11:25:21 +02:00
Ivan Kylchik 30bd39aabf [FIR] Allow to render function type with custom cone type renderer 2021-03-29 18:11:14 +03:00