|
bool | Pre (const parser::ConcurrentHeader &) |
bool | Pre (const parser::LocalitySpec::Local &) |
bool | Pre (const parser::LocalitySpec::LocalInit &) |
bool | Pre (const parser::LocalitySpec::Reduce &) |
bool | Pre (const parser::LocalitySpec::Shared &) |
bool | Pre (const parser::AcSpec &) |
bool | Pre (const parser::AcImpliedDo &) |
bool | Pre (const parser::DataImpliedDo &) |
bool | Pre (const parser::DataIDoObject &) |
bool | Pre (const parser::DataStmtObject &) |
bool | Pre (const parser::DataStmtValue &) |
bool | Pre (const parser::DoConstruct &) |
void | Post (const parser::DoConstruct &) |
bool | Pre (const parser::ForallConstruct &) |
void | Post (const parser::ForallConstruct &) |
bool | Pre (const parser::ForallStmt &) |
void | Post (const parser::ForallStmt &) |
bool | Pre (const parser::BlockConstruct &) |
void | Post (const parser::Selector &) |
void | Post (const parser::AssociateStmt &) |
void | Post (const parser::EndAssociateStmt &) |
bool | Pre (const parser::Association &) |
void | Post (const parser::SelectTypeStmt &) |
void | Post (const parser::SelectRankStmt &) |
bool | Pre (const parser::SelectTypeConstruct &) |
void | Post (const parser::SelectTypeConstruct &) |
bool | Pre (const parser::SelectTypeConstruct::TypeCase &) |
void | Post (const parser::SelectTypeConstruct::TypeCase &) |
bool | Pre (const parser::SelectRankConstruct::RankCase &) |
void | Post (const parser::SelectRankConstruct::RankCase &) |
bool | Pre (const parser::TypeGuardStmt::Guard &) |
void | Post (const parser::TypeGuardStmt::Guard &) |
void | Post (const parser::SelectRankCaseStmt::Rank &) |
bool | Pre (const parser::ChangeTeamStmt &) |
void | Post (const parser::EndChangeTeamStmt &) |
void | Post (const parser::CoarrayAssociation &) |
bool | Pre (const parser::WhereConstructStmt &x) |
bool | Pre (const parser::ForallConstructStmt &x) |
bool | Pre (const parser::CriticalStmt &x) |
bool | Pre (const parser::LabelDoStmt &) |
bool | Pre (const parser::NonLabelDoStmt &x) |
bool | Pre (const parser::IfThenStmt &x) |
bool | Pre (const parser::SelectCaseStmt &x) |
bool | Pre (const parser::SelectRankConstruct &) |
void | Post (const parser::SelectRankConstruct &) |
bool | Pre (const parser::SelectRankStmt &x) |
bool | Pre (const parser::SelectTypeStmt &x) |
void | Post (const parser::MaskedElsewhereStmt &x) |
void | Post (const parser::ElsewhereStmt &x) |
void | Post (const parser::EndWhereStmt &x) |
void | Post (const parser::EndForallStmt &x) |
void | Post (const parser::EndCriticalStmt &x) |
void | Post (const parser::EndDoStmt &x) |
void | Post (const parser::ElseIfStmt &x) |
void | Post (const parser::ElseStmt &x) |
void | Post (const parser::EndIfStmt &x) |
void | Post (const parser::CaseStmt &x) |
void | Post (const parser::EndSelectStmt &x) |
void | Post (const parser::SelectRankCaseStmt &x) |
void | Post (const parser::TypeGuardStmt &x) |
void | Post (const parser::CycleStmt &x) |
void | Post (const parser::ExitStmt &x) |
void | HandleImpliedAsynchronousInScope (const parser::Block &) |
bool | Pre (const parser::Initialization &) |
void | Post (const parser::EntityDecl &) |
void | Post (const parser::ObjectDecl &) |
void | Post (const parser::PointerDecl &) |
bool | Pre (const parser::BindStmt &) |
void | Post (const parser::BindStmt &) |
bool | Pre (const parser::BindEntity &) |
bool | Pre (const parser::OldParameterStmt &) |
bool | Pre (const parser::NamedConstantDef &) |
bool | Pre (const parser::NamedConstant &) |
void | Post (const parser::EnumDef &) |
bool | Pre (const parser::Enumerator &) |
bool | Pre (const parser::AccessSpec &) |
bool | Pre (const parser::AsynchronousStmt &) |
bool | Pre (const parser::ContiguousStmt &) |
bool | Pre (const parser::ExternalStmt &) |
bool | Pre (const parser::IntentStmt &) |
bool | Pre (const parser::IntrinsicStmt &) |
bool | Pre (const parser::OptionalStmt &) |
bool | Pre (const parser::ProtectedStmt &) |
bool | Pre (const parser::ValueStmt &) |
bool | Pre (const parser::VolatileStmt &) |
bool | Pre (const parser::AllocatableStmt &) |
void | Post (const parser::AllocatableStmt &) |
bool | Pre (const parser::TargetStmt &) |
bool | Pre (const parser::CUDAAttributesStmt &) |
void | Post (const parser::TargetStmt &) |
void | Post (const parser::DimensionStmt::Declaration &) |
void | Post (const parser::CodimensionDecl &) |
bool | Pre (const parser::TypeDeclarationStmt &) |
void | Post (const parser::TypeDeclarationStmt &) |
void | Post (const parser::IntegerTypeSpec &) |
void | Post (const parser::UnsignedTypeSpec &) |
void | Post (const parser::IntrinsicTypeSpec::Real &) |
void | Post (const parser::IntrinsicTypeSpec::Complex &) |
void | Post (const parser::IntrinsicTypeSpec::Logical &) |
void | Post (const parser::IntrinsicTypeSpec::Character &) |
void | Post (const parser::CharSelector::LengthAndKind &) |
void | Post (const parser::CharLength &) |
void | Post (const parser::LengthSelector &) |
bool | Pre (const parser::KindParam &) |
bool | Pre (const parser::VectorTypeSpec &) |
void | Post (const parser::VectorTypeSpec &) |
bool | Pre (const parser::DeclarationTypeSpec::Type &) |
void | Post (const parser::DeclarationTypeSpec::Type &) |
bool | Pre (const parser::DeclarationTypeSpec::Class &) |
void | Post (const parser::DeclarationTypeSpec::Class &) |
void | Post (const parser::DeclarationTypeSpec::Record &) |
void | Post (const parser::DerivedTypeSpec &) |
bool | Pre (const parser::DerivedTypeDef &) |
bool | Pre (const parser::DerivedTypeStmt &) |
void | Post (const parser::DerivedTypeStmt &) |
bool | Pre (const parser::TypeParamDefStmt &) |
void | Post (const parser::TypeParamDefStmt &) |
bool | Pre (const parser::TypeAttrSpec::Extends &) |
bool | Pre (const parser::PrivateStmt &) |
bool | Pre (const parser::SequenceStmt &) |
bool | Pre (const parser::ComponentDefStmt &) |
void | Post (const parser::ComponentDefStmt &) |
void | Post (const parser::ComponentDecl &) |
void | Post (const parser::FillDecl &) |
bool | Pre (const parser::ProcedureDeclarationStmt &) |
void | Post (const parser::ProcedureDeclarationStmt &) |
bool | Pre (const parser::DataComponentDefStmt &) |
bool | Pre (const parser::ProcComponentDefStmt &) |
void | Post (const parser::ProcComponentDefStmt &) |
bool | Pre (const parser::ProcPointerInit &) |
void | Post (const parser::ProcInterface &) |
void | Post (const parser::ProcDecl &) |
bool | Pre (const parser::TypeBoundProcedurePart &) |
void | Post (const parser::TypeBoundProcedurePart &) |
void | Post (const parser::ContainsStmt &) |
bool | Pre (const parser::TypeBoundProcBinding &) |
void | Post (const parser::TypeBoundProcBinding &) |
void | Post (const parser::TypeBoundProcedureStmt::WithoutInterface &) |
void | Post (const parser::TypeBoundProcedureStmt::WithInterface &) |
bool | Pre (const parser::FinalProcedureStmt &) |
bool | Pre (const parser::TypeBoundGenericStmt &) |
bool | Pre (const parser::StructureDef &) |
bool | Pre (const parser::Union::UnionStmt &) |
bool | Pre (const parser::StructureField &) |
void | Post (const parser::StructureField &) |
bool | Pre (const parser::AllocateStmt &) |
void | Post (const parser::AllocateStmt &) |
bool | Pre (const parser::StructureConstructor &) |
bool | Pre (const parser::NamelistStmt::Group &) |
bool | Pre (const parser::IoControlSpec &) |
bool | Pre (const parser::CommonStmt::Block &) |
bool | Pre (const parser::CommonBlockObject &) |
void | Post (const parser::CommonBlockObject &) |
bool | Pre (const parser::EquivalenceStmt &) |
bool | Pre (const parser::SaveStmt &) |
bool | Pre (const parser::BasedPointer &) |
void | Post (const parser::BasedPointer &) |
void | PointerInitialization (const parser::Name &, const parser::InitialDataTarget &) |
void | PointerInitialization (const parser::Name &, const parser::ProcPointerInit &) |
void | NonPointerInitialization (const parser::Name &, const parser::ConstantExpr &) |
void | CheckExplicitInterface (const parser::Name &) |
void | CheckBindings (const parser::TypeBoundProcedureStmt::WithoutInterface &) |
const parser::Name * | ResolveDesignator (const parser::Designator &) |
int | GetVectorElementKind (TypeCategory category, const std::optional< parser::KindSelector > &kind) |
void | Post (const parser::ArraySpec &) |
void | Post (const parser::ComponentArraySpec &) |
void | Post (const parser::CoarraySpec &) |
void | Post (const parser::AttrSpec &) |
void | Post (const parser::ComponentAttrSpec &) |
template<typename T> |
void | Post (const parser::Statement< T > &) |
void | Post (const parser::ParameterStmt &) |
void | Post (const parser::ImplicitSpec &) |
void | Post (const parser::IntrinsicTypeSpec::DoublePrecision &) |
void | Post (const parser::IntrinsicTypeSpec::DoubleComplex &) |
void | Post (const parser::DeclarationTypeSpec::ClassStar &) |
void | Post (const parser::DeclarationTypeSpec::TypeStar &) |
void | Post (const parser::TypeGuardStmt &) |
void | Post (const parser::TypeSpec &) |
void | Post (const parser::LanguageBindingSpec &) |
template<typename T> |
bool | Pre (const parser::Statement< T > &x) |
bool | Pre (const parser::ImplicitStmt &) |
bool | Pre (const parser::LetterSpec &) |
bool | Pre (const parser::ImplicitSpec &) |
bool | Pre (const parser::TypeGuardStmt &) |
bool | Pre (const parser::IntentSpec &) |
bool | Pre (const parser::Pass &) |
bool | Pre (const common::CUDADataAttr) |
void | Post (const parser::ArraySpec &) |
void | Post (const parser::ComponentArraySpec &) |
void | Post (const parser::CoarraySpec &) |
void | Post (const parser::AttrSpec &) |
void | Post (const parser::ComponentAttrSpec &) |
| BaseVisitor (SemanticsContext &c, ResolveNamesVisitor &v, ImplicitRulesMap &rules) |
template<typename T> |
void | Walk (const T &) |
MessageHandler & | messageHandler () |
const std::optional< SourceName > & | currStmtSource () |
SemanticsContext & | context () const |
evaluate::FoldingContext & | GetFoldingContext () const |
bool | IsIntrinsic (const SourceName &name, std::optional< Symbol::Flag > flag) const |
bool | InModuleFile () const |
void | MakePlaceholder (const parser::Name &, MiscDetails::Kind) |
template<typename T> |
common::IfNoLvalue< T, T > | FoldExpr (T &&expr) |
template<typename T> |
MaybeExpr | EvaluateExpr (const T &expr) |
template<typename T> |
MaybeExpr | EvaluateNonPointerInitializer (const Symbol &symbol, const T &expr, parser::CharBlock source) |
template<typename T> |
MaybeIntExpr | EvaluateIntExpr (const T &expr) |
template<typename T> |
MaybeSubscriptIntExpr | EvaluateSubscriptIntExpr (const T &expr) |
template<typename... A> |
Message & | Say (A &&...args) |
template<typename... A> |
Message & | Say (const parser::Name &name, MessageFixedText &&text, const A &...args) |
Public Member Functions inherited from Fortran::semantics::ScopeHandler |
Scope & | currScope () |
Scope * | GetHostProcedure () |
Scope & | InclusiveScope () |
Scope & | NonDerivedTypeScope () |
void | PushScope (Scope::Kind kind, Symbol *symbol) |
void | PushScope (Scope &scope) |
void | PopScope () |
void | SetScope (Scope &) |
template<typename T> |
bool | Pre (const parser::Statement< T > &x) |
template<typename T> |
void | Post (const parser::Statement< T > &) |
void | SayAlreadyDeclared (const parser::Name &, Symbol &) |
void | SayAlreadyDeclared (const SourceName &, Symbol &) |
void | SayAlreadyDeclared (const SourceName &, const SourceName &) |
void | SayWithReason (const parser::Name &, Symbol &, MessageFixedText &&, Message &&) |
template<typename... A> |
Message & | SayWithDecl (const parser::Name &, Symbol &, MessageFixedText &&, A &&...args) |
void | SayLocalMustBeVariable (const parser::Name &, Symbol &) |
Message & | SayDerivedType (const SourceName &, MessageFixedText &&, const Scope &) |
Message & | Say2 (const SourceName &, MessageFixedText &&, const SourceName &, MessageFixedText &&) |
Message & | Say2 (const SourceName &, MessageFixedText &&, Symbol &, MessageFixedText &&) |
Message & | Say2 (const parser::Name &, MessageFixedText &&, Symbol &, MessageFixedText &&) |
Symbol * | FindSymbol (const parser::Name &) |
Symbol * | FindSymbol (const Scope &, const parser::Name &) |
Symbol * | FindInScope (const Scope &, const parser::Name &) |
Symbol * | FindInScope (const Scope &, const SourceName &) |
template<typename T> |
Symbol * | FindInScope (const T &name) |
Symbol * | FindInTypeOrParents (const Scope &, const parser::Name &) |
Symbol * | FindInTypeOrParents (const parser::Name &) |
Symbol * | FindInScopeOrBlockConstructs (const Scope &, SourceName) |
Symbol * | FindSeparateModuleProcedureInterface (const parser::Name &) |
void | EraseSymbol (const parser::Name &) |
void | EraseSymbol (const Symbol &symbol) |
Symbol & | CopySymbol (const SourceName &, const Symbol &) |
Symbol & | MakeSymbol (Scope &, const SourceName &, Attrs) |
Symbol & | MakeSymbol (const SourceName &, Attrs=Attrs{}) |
Symbol & | MakeSymbol (const parser::Name &, Attrs=Attrs{}) |
Symbol & | MakeHostAssocSymbol (const parser::Name &, const Symbol &) |
template<typename D> |
common::IfNoLvalue< Symbol &, D > | MakeSymbol (const parser::Name &name, D &&details) |
template<typename D> |
common::IfNoLvalue< Symbol &, D > | MakeSymbol (const parser::Name &name, const Attrs &attrs, D &&details) |
template<typename D> |
common::IfNoLvalue< Symbol &, D > | MakeSymbol (const SourceName &name, const Attrs &attrs, D &&details) |
void | MakeExternal (Symbol &) |
bool | CheckDuplicatedAttr (SourceName, Symbol &, Attr) |
bool | CheckDuplicatedAttrs (SourceName, Symbol &, Attrs) |
void | SetExplicitAttr (Symbol &symbol, Attr attr) const |
void | SetExplicitAttrs (Symbol &symbol, Attrs attrs) const |
void | SetImplicitAttr (Symbol &symbol, Attr attr) const |
void | SetCUDADataAttr (SourceName, Symbol &, std::optional< common::CUDADataAttr >) |
void | Post (const parser::ParameterStmt &) |
void | Post (const parser::ImplicitSpec &) |
void | Post (const parser::IntrinsicTypeSpec::DoublePrecision &) |
void | Post (const parser::IntrinsicTypeSpec::DoubleComplex &) |
void | Post (const parser::DeclarationTypeSpec::ClassStar &) |
void | Post (const parser::DeclarationTypeSpec::TypeStar &) |
void | Post (const parser::TypeGuardStmt &) |
void | Post (const parser::TypeSpec &) |
void | Post (const parser::LanguageBindingSpec &) |
bool | Pre (const parser::ImplicitStmt &) |
bool | Pre (const parser::LetterSpec &) |
bool | Pre (const parser::ImplicitSpec &) |
bool | Pre (const parser::TypeGuardStmt &) |
bool | Pre (const parser::IntentSpec &) |
bool | Pre (const parser::Pass &) |
bool | Pre (const common::CUDADataAttr) |
void | Post (const parser::ParameterStmt &) |
bool | Pre (const parser::ImplicitStmt &) |
bool | Pre (const parser::LetterSpec &) |
bool | Pre (const parser::ImplicitSpec &) |
void | Post (const parser::ImplicitSpec &) |
const DeclTypeSpec * | GetType (SourceName name, bool respectImplicitNoneType=true) |
bool | isImplicitNoneType () const |
bool | isImplicitNoneType (const Scope &scope) const |
bool | isImplicitNoneExternal () const |
void | set_inheritFromParent (bool x) |
void | Post (const parser::IntrinsicTypeSpec::DoublePrecision &) |
void | Post (const parser::IntrinsicTypeSpec::DoubleComplex &) |
void | Post (const parser::DeclarationTypeSpec::ClassStar &) |
void | Post (const parser::DeclarationTypeSpec::TypeStar &) |
void | Post (const parser::TypeGuardStmt &) |
void | Post (const parser::TypeSpec &) |
void | Post (const parser::LanguageBindingSpec &) |
bool | Pre (const parser::TypeGuardStmt &) |
bool | Pre (const parser::IntentSpec &) |
bool | Pre (const parser::Pass &) |
bool | Pre (const common::CUDADataAttr) |
void | Post (const parser::IntrinsicTypeSpec::DoublePrecision &) |
void | Post (const parser::IntrinsicTypeSpec::DoubleComplex &) |
void | Post (const parser::DeclarationTypeSpec::ClassStar &) |
void | Post (const parser::DeclarationTypeSpec::TypeStar &) |
bool | Pre (const parser::TypeGuardStmt &) |
void | Post (const parser::TypeGuardStmt &) |
void | Post (const parser::TypeSpec &) |
template<typename T> |
const DeclTypeSpec * | ProcessTypeSpec (const T &x, bool allowForward=false) |
void | Post (const parser::LanguageBindingSpec &) |
bool | Pre (const parser::IntentSpec &) |
bool | Pre (const parser::Pass &) |
bool | Pre (const common::CUDADataAttr) |
bool | BeginAttrs () |
Attrs | GetAttrs () |
std::optional< common::CUDADataAttr > | cudaDataAttr () |
Attrs | EndAttrs () |
bool | SetPassNameOn (Symbol &) |
void | SetBindNameOn (Symbol &) |
void | Post (const parser::LanguageBindingSpec &) |
bool | Pre (const parser::IntentSpec &) |
bool | Pre (const parser::Pass &) |
bool | CheckAndSet (Attr) |
bool | Pre (const common::CUDADataAttr) |
|
using | ImplicitNoneNameSpec = parser::ImplicitStmt::ImplicitNoneNameSpec |
Protected Types inherited from Fortran::semantics::GenericHandler |
using | ProcedureKind = parser::ProcedureStmt::Kind |
using | SpecificProcMapType |
using | GenericProcMapType = std::multimap<SourceName, Symbol *> |
bool | BeginDecl () |
void | EndDecl () |
Symbol & | DeclareObjectEntity (const parser::Name &, Attrs=Attrs{}) |
Symbol & | FindOrDeclareEnclosingEntity (const parser::Name &) |
void | DeclareLocalEntity (const parser::Name &, Symbol::Flag) |
Symbol * | DeclareStatementEntity (const parser::DoVariable &, const std::optional< parser::IntegerTypeSpec > &) |
Symbol & | MakeCommonBlockSymbol (const parser::Name &) |
Symbol & | MakeCommonBlockSymbol (const std::optional< parser::Name > &) |
bool | CheckUseError (const parser::Name &) |
void | CheckAccessibility (const SourceName &, bool, Symbol &) |
void | CheckCommonBlocks () |
void | CheckSaveStmts () |
void | CheckEquivalenceSets () |
bool | CheckNotInBlock (const char *) |
bool | NameIsKnownOrIntrinsic (const parser::Name &) |
void | FinishNamelists () |
const parser::Name * | ResolveStructureComponent (const parser::StructureComponent &) |
const parser::Name * | ResolveDataRef (const parser::DataRef &) |
const parser::Name * | ResolveName (const parser::Name &) |
bool | PassesSharedLocalityChecks (const parser::Name &name, Symbol &symbol) |
Symbol * | NoteInterfaceName (const parser::Name &) |
bool | IsUplevelReference (const Symbol &) |
std::optional< SourceName > | BeginCheckOnIndexUseInOwnBounds (const parser::DoVariable &name) |
void | EndCheckOnIndexUseInOwnBounds (const std::optional< SourceName > &restore) |
void | NoteScalarSpecificationArgument (const Symbol &symbol) |
template<typename T> |
Symbol & | DeclareEntity (const parser::Name &name, Attrs attrs) |
const ArraySpec & | arraySpec () |
void | set_arraySpec (const ArraySpec arraySpec) |
const ArraySpec & | coarraySpec () |
void | BeginArraySpec () |
void | EndArraySpec () |
void | ClearArraySpec () |
void | ClearCoarraySpec () |
Protected Member Functions inherited from Fortran::semantics::GenericHandler |
void | ResolveSpecificsInGeneric (Symbol &, bool isEndOfSpecificationPart) |
void | DeclaredPossibleSpecificProc (Symbol &) |
Protected Member Functions inherited from Fortran::semantics::ScopeHandler |
FuncResultStack & | funcResultStack () |
void | ApplyImplicitRules (Symbol &, bool allowForwardReference=false) |
bool | ImplicitlyTypeForwardRef (Symbol &) |
void | AcquireIntrinsicProcedureFlags (Symbol &) |
const DeclTypeSpec * | GetImplicitType (Symbol &, bool respectImplicitNoneType=true) |
void | CheckEntryDummyUse (SourceName, Symbol *) |
bool | ConvertToObjectEntity (Symbol &) |
bool | ConvertToProcEntity (Symbol &, std::optional< SourceName >=std::nullopt) |
const DeclTypeSpec & | MakeNumericType (TypeCategory, const std::optional< parser::KindSelector > &) |
const DeclTypeSpec & | MakeNumericType (TypeCategory, int) |
const DeclTypeSpec & | MakeLogicalType (const std::optional< parser::KindSelector > &) |
const DeclTypeSpec & | MakeLogicalType (int) |
void | NotePossibleBadForwardRef (const parser::Name &) |
std::optional< SourceName > | HadForwardRef (const Symbol &) const |
bool | CheckPossibleBadForwardRef (const Symbol &) |
bool | ConvertToUseError (Symbol &, const SourceName &, const Symbol &used) |
DeferredDeclarationState * | GetDeferredDeclarationState (bool add=false) |
void | SkipImplicitTyping (bool skip) |
void | NoteEarlyDeclaredDummyArgument (Symbol &symbol) |
bool | IsEarlyDeclaredDummyArgument (Symbol &symbol) |
void | ForgetEarlyDeclaredDummyArgument (Symbol &symbol) |
void | BeginScope (const Scope &) |
void | SetScope (const Scope &) |
bool | allowForwardReferenceToDerivedType () const |
void | set_allowForwardReferenceToDerivedType (bool yes) |
const DeclTypeSpec * | GetDeclTypeSpec () |
void | BeginDeclTypeSpec () |
void | EndDeclTypeSpec () |
void | SetDeclTypeSpec (const DeclTypeSpec &) |
void | SetDeclTypeSpecCategory (DeclTypeSpec::Category) |
DeclTypeSpec::Category | GetDeclTypeSpecCategory () const |
KindExpr | GetKindParamExpr (TypeCategory, const std::optional< parser::KindSelector > &) |
void | CheckForAbstractType (const Symbol &typeSymbol) |
Attr | AccessSpecToAttr (const parser::AccessSpec &x) |
Attr | IntentSpecToAttr (const parser::IntentSpec &x) |
ImplicitRulesMap * | implicitRulesMap_ {nullptr} |
Protected Attributes inherited from Fortran::semantics::GenericHandler |
SpecificProcMapType | specificsForGenericProcs_ |
GenericProcMapType | genericsForSpecificProcs_ |
Protected Attributes inherited from Fortran::semantics::ScopeHandler |
bool | inSpecificationPart_ {false} |
bool | deferImplicitTyping_ {false} |
bool | skipImplicitTyping_ {false} |
bool | inEquivalenceStmt_ {false} |
struct Fortran::semantics::ScopeHandler::SpecificationPartState | specPartState_ |
std::optional< Attrs > | attrs_ |
std::optional< common::CUDADataAttr > | cudaDataAttr_ |