FLANG
Fortran::semantics::GenericHandler Class Reference
Inheritance diagram for Fortran::semantics::GenericHandler:
Fortran::semantics::ScopeHandler Fortran::semantics::ImplicitRulesVisitor Fortran::semantics::DeclTypeSpecVisitor Fortran::semantics::AttrsVisitor Fortran::semantics::BaseVisitor Fortran::semantics::DeclarationVisitor Fortran::semantics::InterfaceVisitor Fortran::semantics::AccVisitor Fortran::semantics::ConstructVisitor Fortran::semantics::OmpVisitor Fortran::semantics::SubprogramVisitor Fortran::semantics::ResolveNamesVisitor Fortran::semantics::ResolveNamesVisitor Fortran::semantics::ResolveNamesVisitor Fortran::semantics::ResolveNamesVisitor

Protected Types

using ProcedureKind = parser::ProcedureStmt::Kind
using SpecificProcMapType
using GenericProcMapType = std::multimap<SourceName, Symbol *>

Protected Member Functions

void ResolveSpecificsInGeneric (Symbol &, bool isEndOfSpecificationPart)
void DeclaredPossibleSpecificProc (Symbol &)
Protected Member Functions inherited from Fortran::semantics::ScopeHandler
FuncResultStackfuncResultStack ()
void ApplyImplicitRules (Symbol &, bool allowForwardReference=false)
bool ImplicitlyTypeForwardRef (Symbol &)
void AcquireIntrinsicProcedureFlags (Symbol &)
const DeclTypeSpecGetImplicitType (Symbol &, bool respectImplicitNoneType=true)
void CheckEntryDummyUse (SourceName, Symbol *)
bool ConvertToObjectEntity (Symbol &)
bool ConvertToProcEntity (Symbol &, std::optional< SourceName >=std::nullopt)
const DeclTypeSpecMakeNumericType (TypeCategory, const std::optional< parser::KindSelector > &)
const DeclTypeSpecMakeNumericType (TypeCategory, int)
const DeclTypeSpecMakeLogicalType (const std::optional< parser::KindSelector > &)
const DeclTypeSpecMakeLogicalType (int)
void NotePossibleBadForwardRef (const parser::Name &)
std::optional< SourceNameHadForwardRef (const Symbol &) const
bool CheckPossibleBadForwardRef (const Symbol &)
bool ConvertToUseError (Symbol &, const SourceName &, const Symbol &used)
DeferredDeclarationStateGetDeferredDeclarationState (bool add=false)
void SkipImplicitTyping (bool skip)
void NoteEarlyDeclaredDummyArgument (Symbol &symbol)
bool IsEarlyDeclaredDummyArgument (Symbol &symbol)
void ForgetEarlyDeclaredDummyArgument (Symbol &symbol)
Protected Member Functions inherited from Fortran::semantics::ImplicitRulesVisitor
void BeginScope (const Scope &)
void SetScope (const Scope &)
Protected Member Functions inherited from Fortran::semantics::DeclTypeSpecVisitor
bool allowForwardReferenceToDerivedType () const
void set_allowForwardReferenceToDerivedType (bool yes)
const DeclTypeSpecGetDeclTypeSpec ()
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)
Protected Member Functions inherited from Fortran::semantics::AttrsVisitor
Attr AccessSpecToAttr (const parser::AccessSpec &x)
Attr IntentSpecToAttr (const parser::IntentSpec &x)

Protected Attributes

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_
Protected Attributes inherited from Fortran::semantics::AttrsVisitor
std::optional< Attrs > attrs_
std::optional< common::CUDADataAttr > cudaDataAttr_
Protected Attributes inherited from Fortran::semantics::BaseVisitor
ImplicitRulesMap * implicitRulesMap_ {nullptr}

Additional Inherited Members

Public Types inherited from Fortran::semantics::ImplicitRulesVisitor
using ImplicitNoneNameSpec = parser::ImplicitStmt::ImplicitNoneNameSpec
Public Member Functions inherited from Fortran::semantics::ScopeHandler
ScopecurrScope ()
ScopeGetHostProcedure ()
ScopeInclusiveScope ()
ScopeNonDerivedTypeScope ()
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>
MessageSayWithDecl (const parser::Name &, Symbol &, MessageFixedText &&, A &&...args)
void SayLocalMustBeVariable (const parser::Name &, Symbol &)
MessageSayDerivedType (const SourceName &, MessageFixedText &&, const Scope &)
MessageSay2 (const SourceName &, MessageFixedText &&, const SourceName &, MessageFixedText &&)
MessageSay2 (const SourceName &, MessageFixedText &&, Symbol &, MessageFixedText &&)
MessageSay2 (const parser::Name &, MessageFixedText &&, Symbol &, MessageFixedText &&)
SymbolFindSymbol (const parser::Name &)
SymbolFindSymbol (const Scope &, const parser::Name &)
SymbolFindInScope (const Scope &, const parser::Name &)
SymbolFindInScope (const Scope &, const SourceName &)
template<typename T>
SymbolFindInScope (const T &name)
SymbolFindInTypeOrParents (const Scope &, const parser::Name &)
SymbolFindInTypeOrParents (const parser::Name &)
SymbolFindInScopeOrBlockConstructs (const Scope &, SourceName)
SymbolFindSeparateModuleProcedureInterface (const parser::Name &)
void EraseSymbol (const parser::Name &)
void EraseSymbol (const Symbol &symbol)
SymbolCopySymbol (const SourceName &, const Symbol &)
SymbolMakeSymbol (Scope &, const SourceName &, Attrs)
SymbolMakeSymbol (const SourceName &, Attrs=Attrs{})
SymbolMakeSymbol (const parser::Name &, Attrs=Attrs{})
SymbolMakeHostAssocSymbol (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)
Public Member Functions inherited from Fortran::semantics::ImplicitRulesVisitor
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 DeclTypeSpecGetType (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)
Public Member Functions inherited from Fortran::semantics::DeclTypeSpecVisitor
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 DeclTypeSpecProcessTypeSpec (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)
Public Member Functions inherited from Fortran::semantics::AttrsVisitor
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)
Public Member Functions inherited from Fortran::semantics::BaseVisitor
 BaseVisitor (SemanticsContext &c, ResolveNamesVisitor &v, ImplicitRulesMap &rules)
template<typename T>
void Walk (const T &)
MessageHandlermessageHandler ()
const std::optional< SourceName > & currStmtSource ()
SemanticsContextcontext () const
evaluate::FoldingContextGetFoldingContext () 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>
MessageSay (A &&...args)
template<typename... A>
MessageSay (const parser::Name &name, MessageFixedText &&text, const A &...args)

Member Typedef Documentation

◆ SpecificProcMapType

using Fortran::semantics::GenericHandler::SpecificProcMapType
protected
Initial value:
std::multimap<Symbol *, std::pair<const parser::Name *, ProcedureKind>>

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