source/analysis/annotatedAttribute.mli (101 lines of code) (raw):

(* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) open Ast type read_only = | Refinable of { overridable: bool } | Unrefinable [@@deriving eq, show, compare, sexp] type visibility = | ReadOnly of read_only | ReadWrite [@@deriving eq, show, compare, sexp] type initialized = | OnClass | OnlyOnInstance | NotInitialized [@@deriving eq, show, compare, sexp] type invalid_decorator_reason = | CouldNotResolve | CouldNotResolveArgument of { argument_index: int } | NonCallableDecoratorFactory of Type.t | NonCallableDecorator of Type.t | FactorySignatureSelectionFailed of { reason: SignatureSelectionTypes.reason option; callable: Type.Callable.t; } | ApplicationFailed of { callable: Type.Callable.t; reason: SignatureSelectionTypes.reason option; } [@@deriving eq, show, compare, sexp] type problem = | DifferingDecorators of { offender: Type.t Type.Callable.overload } | InvalidDecorator of { index: int; reason: invalid_decorator_reason; } [@@deriving eq, show, compare, sexp] type 'a t [@@deriving eq, show, compare, sexp] type instantiated_annotation type instantiated = instantiated_annotation t [@@deriving eq, show, compare, sexp] val create : abstract:bool -> annotation:Type.t -> original_annotation:Type.t -> async_property:bool -> class_variable:bool -> defined:bool -> initialized:initialized -> name:Identifier.t -> parent:Type.Primitive.t -> visibility:visibility -> property:bool -> uninstantiated_annotation:Type.t option -> undecorated_signature:Type.Callable.t option -> problem:problem option -> instantiated val create_uninstantiated : abstract:bool -> uninstantiated_annotation:'a -> async_property:bool -> class_variable:bool -> defined:bool -> initialized:initialized -> name:Identifier.t -> parent:Type.Primitive.t -> visibility:visibility -> property:bool -> undecorated_signature:Type.Callable.t option -> problem:problem option -> 'a t val annotation : instantiated -> Annotation.t val uninstantiated_annotation : 'a t -> 'a val with_uninstantiated_annotation : uninstantiated_annotation:'a -> 'a t -> 'a t val with_undecorated_signature : 'a t -> undecorated_signature:Type.Callable.t option -> 'a t val name : 'a t -> Identifier.t val abstract : 'a t -> bool val async_property : 'a t -> bool val parent : 'a t -> Type.Primitive.t val parent_name : 'a t -> Identifier.t val initialized : 'a t -> initialized val defined : 'a t -> bool val class_variable : 'a t -> bool val static : instantiated -> bool val property : 'a t -> bool val visibility : 'a t -> visibility val is_private : 'a t -> bool val public_name : 'a t -> Identifier.t val is_final : 'a t -> bool val with_initialized : 'a t -> initialized:initialized -> 'a t val undecorated_signature : 'a t -> Type.Callable.t option val problem : 'a t -> problem option val instantiate : 'a t -> annotation:Type.t -> original_annotation:Type.t -> uninstantiated_annotation:Type.t option -> instantiated