FLANG
Fortran::evaluate::DynamicType Class Reference
Inheritance diagram for Fortran::evaluate::DynamicType:
Fortran::evaluate::DynamicTypeWithLength

Public Member Functions

constexpr DynamicType (TypeCategory cat, int k)
 DynamicType (int charKind, const semantics::ParamValue &len)
constexpr DynamicType (int k, std::int64_t len)
constexpr DynamicType (const semantics::DerivedTypeSpec &dt, bool poly=false)
bool operator== (const DynamicType &) const
bool operator!= (const DynamicType &that) const
constexpr TypeCategory category () const
constexpr int kind () const
constexpr const semantics::ParamValuecharLengthParamValue () const
constexpr std::optional< std::int64_t > knownLength () const
std::optional< Expr< SubscriptInteger > > GetCharLength () const
std::size_t GetAlignment (const TargetCharacteristics &) const
std::optional< Expr< SubscriptInteger > > MeasureSizeInBytes (FoldingContext &, bool aligned, std::optional< std::int64_t > charLength=std::nullopt) const
std::string AsFortran () const
std::string AsFortran (std::string &&charLenExpr) const
DynamicType ResultTypeForMultiply (const DynamicType &) const
bool IsAssumedLengthCharacter () const
bool IsNonConstantLengthCharacter () const
bool IsTypelessIntrinsicArgument () const
constexpr bool IsAssumedType () const
constexpr bool IsPolymorphic () const
constexpr bool IsUnlimitedPolymorphic () const
bool IsLengthlessIntrinsicType () const
constexpr const semantics::DerivedTypeSpecGetDerivedTypeSpec () const
bool RequiresDescriptor () const
bool HasDeferredTypeParameter () const
bool IsTkCompatibleWith (const DynamicType &) const
bool IsTkCompatibleWith (const DynamicType &, common::IgnoreTKRSet) const
bool IsTkLenCompatibleWith (const DynamicType &) const
std::optional< bool > ExtendsTypeOf (const DynamicType &) const
std::optional< bool > SameTypeAs (const DynamicType &) const
bool IsEquivalentTo (const DynamicType &) const
DynamicType DropNonConstantCharacterLength () const

Static Public Member Functions

static constexpr DynamicType TypelessIntrinsicArgument ()
static constexpr DynamicType UnlimitedPolymorphic ()
static constexpr DynamicType AssumedType ()
static std::optional< DynamicTypeFrom (const semantics::DeclTypeSpec &)
static std::optional< DynamicTypeFrom (const semantics::Symbol &)
template<typename A>
static std::optional< DynamicTypeFrom (const A &x)
template<typename A>
static std::optional< DynamicTypeFrom (const A *p)
template<typename A>
static std::optional< DynamicTypeFrom (const std::optional< A > &x)

The documentation for this class was generated from the following files: