Lines Matching refs:Scope

28 static const Scope *FindScopeContaining(  in FindScopeContaining()
29 const Scope &start, std::function<bool(const Scope &)> predicate) { in FindScopeContaining()
30 for (const Scope *scope{&start};; scope = &scope->parent()) { in FindScopeContaining()
40 const Scope &GetTopLevelUnitContaining(const Scope &start) { in GetTopLevelUnitContaining()
43 start, [](const Scope &scope) { return scope.parent().IsTopLevel(); })); in GetTopLevelUnitContaining()
46 const Scope &GetTopLevelUnitContaining(const Symbol &symbol) { in GetTopLevelUnitContaining()
50 const Scope *FindModuleContaining(const Scope &start) { in FindModuleContaining()
52 start, [](const Scope &scope) { return scope.IsModule(); }); in FindModuleContaining()
55 const Scope *FindModuleFileContaining(const Scope &start) { in FindModuleFileContaining()
57 start, [](const Scope &scope) { return scope.IsModuleFile(); }); in FindModuleFileContaining()
60 const Scope &GetProgramUnitContaining(const Scope &start) { in GetProgramUnitContaining()
62 return DEREF(FindScopeContaining(start, [](const Scope &scope) { in GetProgramUnitContaining()
64 case Scope::Kind::Module: in GetProgramUnitContaining()
65 case Scope::Kind::MainProgram: in GetProgramUnitContaining()
66 case Scope::Kind::Subprogram: in GetProgramUnitContaining()
67 case Scope::Kind::BlockData: in GetProgramUnitContaining()
75 const Scope &GetProgramUnitContaining(const Symbol &symbol) { in GetProgramUnitContaining()
79 const Scope &GetProgramUnitOrBlockConstructContaining(const Scope &start) { in GetProgramUnitOrBlockConstructContaining()
81 return DEREF(FindScopeContaining(start, [](const Scope &scope) { in GetProgramUnitOrBlockConstructContaining()
83 case Scope::Kind::Module: in GetProgramUnitOrBlockConstructContaining()
84 case Scope::Kind::MainProgram: in GetProgramUnitOrBlockConstructContaining()
85 case Scope::Kind::Subprogram: in GetProgramUnitOrBlockConstructContaining()
86 case Scope::Kind::BlockData: in GetProgramUnitOrBlockConstructContaining()
87 case Scope::Kind::BlockConstruct: in GetProgramUnitOrBlockConstructContaining()
95 const Scope &GetProgramUnitOrBlockConstructContaining(const Symbol &symbol) { in GetProgramUnitOrBlockConstructContaining()
99 const Scope *FindPureProcedureContaining(const Scope &start) { in FindPureProcedureContaining()
106 const Scope &scope{GetProgramUnitContaining(start)}; in FindPureProcedureContaining()
224 bool IsUseAssociated(const Symbol &symbol, const Scope &scope) { in IsUseAssociated()
225 const Scope &owner{ in IsUseAssociated()
227 return owner.kind() == Scope::Kind::Module && in IsUseAssociated()
232 const Scope *maybeAncestor, const Scope &maybeDescendent) { in DoesScopeContain()
235 [&](const Scope &scope) { return &scope == maybeAncestor; }); in DoesScopeContain()
238 bool DoesScopeContain(const Scope *maybeAncestor, const Symbol &symbol) { in DoesScopeContain()
252 bool IsHostAssociated(const Symbol &symbol, const Scope &scope) { in IsHostAssociated()
287 bool IsBindCProcedure(const Scope &scope) { in IsBindCProcedure()
296 const Scope &scope, std::set<const Scope *> &visited) { in FindPointerComponent()
316 if (const Scope * nested{derived->scope()}) { in FindPointerComponent()
329 const Symbol *FindPointerComponent(const Scope &scope) { in FindPointerComponent()
330 std::set<const Scope *> visited; in FindPointerComponent()
335 if (const Scope * scope{derived.scope()}) { in FindPointerComponent()
360 const Symbol &object, const Scope &scope) { in FindExternallyVisibleObject()
490 if (const Scope * parentScope{parentDerived->typeSymbol().scope()}) { in FindOverriddenBinding()
511 const DeclTypeSpec *FindParentTypeSpec(const Scope &scope) { in FindParentTypeSpec()
512 if (scope.kind() == Scope::Kind::DerivedType) { in FindParentTypeSpec()
521 if (const Scope * scope{symbol.scope()}) { in FindParentTypeSpec()
561 return symbol->owner().kind() == Scope::Kind::Module; in CanBeTypeBoundProc()
563 return symbol->owner().kind() == Scope::Kind::Module || in CanBeTypeBoundProc()
719 std::list<std::list<SymbolRef>> GetStorageAssociations(const Scope &scope) { in GetStorageAssociations()
755 const Symbol &symbol, const Scope &scope) { in IsExternalInPureContext()
790 bool InProtectedContext(const Symbol &symbol, const Scope &currentScope) { in InProtectedContext()
798 parser::CharBlock at, const Symbol &symbol, const Scope &scope) { in WhyNotModifiableFirst()
828 parser::CharBlock at, const Symbol &symbol, const Scope &scope) { in WhyNotModifiableLast()
842 parser::CharBlock at, const Symbol &symbol, const Scope &scope) { in WhyNotModifiableIfNoPtr()
856 const Symbol &original, const Scope &scope) { in WhyNotModifiable()
871 const SomeExpr &expr, const Scope &scope, bool vectorSubscriptIsOk) { in WhyNotModifiable()
1049 const Scope &scope, const Symbol &symbol) { in CheckAccessibleComponent()
1056 } else if (const Scope * in CheckAccessibleComponent()
1089 Scope &scope, DerivedTypeSpec &&spec, DeclTypeSpec::Category category) { in FindOrInstantiateDerivedType()
1134 case Scope::Kind::Global: in ClassifyProcedure()
1135 case Scope::Kind::IntrinsicModules: in ClassifyProcedure()
1137 case Scope::Kind::Module: in ClassifyProcedure()
1139 case Scope::Kind::MainProgram: in ClassifyProcedure()
1140 case Scope::Kind::Subprogram: in ClassifyProcedure()
1178 } else if constexpr (componentKind == ComponentKind::Scope) { in PlanComponentTraversal()
1244 } else if constexpr (componentKind == ComponentKind::Scope) { in Increment()
1250 const Scope &scope{deepest.GetScope()}; in Increment()
1282 template class ComponentIterator<ComponentKind::Scope>;
1366 if (const Scope * scope{type.scope()}) { in FindImmediateComponent()
1398 const Scope &outer{symbol.owner().parent()}; in IsFunctionResultWithSameNameAsFunction()
1520 const Scope *scope) { in HasDefinedIo()
1521 if (const Scope * dtScope{derived.scope()}) { in HasDefinedIo()
1564 const DerivedTypeSpec &derived, const Scope *scope) { in FindUnsafeIoDirectComponent()
1568 if (const Scope * dtScope{derived.scope()}) { in FindUnsafeIoDirectComponent()