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

Public Member Functions

bool Pre (const parser::InterfaceStmt &)
void Post (const parser::InterfaceStmt &)
void Post (const parser::EndInterfaceStmt &)
bool Pre (const parser::GenericSpec &)
bool Pre (const parser::ProcedureStmt &)
bool Pre (const parser::GenericStmt &)
void Post (const parser::GenericStmt &)
bool inInterfaceBlock () const
bool isGeneric () const
bool isAbstract () const
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 &)
Symbol & MakeHostAssocSymbol (Scope &, 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 >, bool isImplicit=false)
void ApplyImplicitCUDADataAttr (Symbol &)
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)
bool Pre (const parser::CUDADataAttrSpec::Implicit &)
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 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)
bool Pre (const parser::CUDADataAttrSpec::Implicit &)
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 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 Pre (const parser::CUDADataAttrSpec::Implicit &)
Public Member Functions inherited from Fortran::semantics::AttrsVisitor
bool BeginAttrs ()
Attrs GetAttrs ()
std::optional< common::CUDADataAttr > cudaDataAttr ()
bool cudaDataAttrIsImplicit () const
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)
bool Pre (const parser::CUDADataAttrSpec::Implicit &)
Public Member Functions inherited from Fortran::semantics::BaseVisitor
 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)

Protected Member Functions

Symbol & GetGenericSymbol ()
void CheckGenericProcedures (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)
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)
void set_inPDTDefinition (bool yes)
const DeclTypeSpec * GetDeclTypeSpec () const
const parser::Expr * GetOriginalKindParameter () const
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 Member Functions inherited from Fortran::semantics::GenericHandler
void ResolveSpecificsInGeneric (Symbol &, bool isEndOfSpecificationPart)
void DeclaredPossibleSpecificProc (Symbol &)

Additional Inherited Members

Public Types inherited from Fortran::semantics::ImplicitRulesVisitor
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 *>
Protected Attributes inherited from Fortran::semantics::ScopeHandler
bool inSpecificationPart_ {false}
bool deferImplicitTyping_ {false}
bool skipImplicitTyping_ {false}
bool inEquivalenceStmt_ {false}
bool dataStmtObjectInSpecPart_ {false}
struct Fortran::semantics::ScopeHandler::SpecificationPartState specPartState_
Protected Attributes inherited from Fortran::semantics::AttrsVisitor
std::optional< Attrs > attrs_
std::optional< common::CUDADataAttr > cudaDataAttr_
bool cudaDataAttrIsImplicit_ {false}
Protected Attributes inherited from Fortran::semantics::BaseVisitor
ImplicitRulesMap * implicitRulesMap_ {nullptr}
Protected Attributes inherited from Fortran::semantics::GenericHandler
SpecificProcMapType specificsForGenericProcs_
GenericProcMapType genericsForSpecificProcs_

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