FLANG
Fortran::semantics::TypeAndShape Class Reference

Public Types

using Attrs = common::EnumSet<Attr, Attr_enumSize>

Public Member Functions

 TypeAndShape (DynamicType t)
 TypeAndShape (DynamicType t, int rank)
 TypeAndShape (DynamicType t, Shape &&s)
 TypeAndShape (DynamicType t, std::optional< Shape > &&s)
bool operator== (const TypeAndShape &) const
bool operator!= (const TypeAndShape &that) const
DynamicType type () const
TypeAndShapeset_type (DynamicType t)
const std::optional< Expr< SubscriptInteger > > & LEN () const
TypeAndShapeset_LEN (Expr< SubscriptInteger > &&len)
const std::optional< Shape > & shape () const
const Attrsattrs () const
Attrsattrs ()
bool isPossibleSequenceAssociation () const
TypeAndShapeset_isPossibleSequenceAssociation (bool yes)
int corank () const
void set_corank (int n)
int Rank () const
bool CanBeSequenceAssociated () const
bool IsCompatibleWith (parser::ContextualMessages &, const TypeAndShape &that, const char *thisIs="pointer", const char *thatIs="target", bool omitShapeConformanceCheck=false, enum CheckConformanceFlags::Flags=CheckConformanceFlags::None) const
std::optional< Expr< SubscriptInteger > > MeasureElementSizeInBytes (FoldingContext &, bool align) const
std::optional< Expr< SubscriptInteger > > MeasureSizeInBytes (FoldingContext &) const
bool IsExplicitShape () const
TypeAndShapeRewrite (FoldingContext &)
std::string AsFortran () const
llvm::raw_ostream & Dump (llvm::raw_ostream &) const

Static Public Member Functions

static std::optional< TypeAndShapeCharacterize (const semantics::Symbol &, FoldingContext &, bool invariantOnly=true)
static std::optional< TypeAndShapeCharacterize (const semantics::DeclTypeSpec &, FoldingContext &, bool invariantOnly=true)
static std::optional< TypeAndShapeCharacterize (const ActualArgument &, FoldingContext &, bool invariantOnly=true)
template<typename A>
static std::optional< TypeAndShapeCharacterize (const A &x, FoldingContext &context, bool invariantOnly=true)
template<int KIND>
static std::optional< TypeAndShapeCharacterize (const Designator< Type< TypeCategory::Character, KIND > > &x, FoldingContext &context, bool invariantOnly=true)
template<typename A>
static std::optional< TypeAndShapeCharacterize (const std::optional< A > &x, FoldingContext &context, bool invariantOnly=true)
template<typename A>
static std::optional< TypeAndShapeCharacterize (A *ptr, FoldingContext &context, bool invariantOnly=true)

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