Lines Matching defs:symbol
45 #include "flang/Semantics/symbol.h"
57 // Finds all symbol names in the scope without collecting duplicates.
143 if (context_.HasError(name.symbol)) {
146 const Symbol &symbol{DEREF(name.symbol)};
147 auto type{evaluate::DynamicType::From(symbol)};
148 if (!IsVariableName(symbol) || symbol.Rank() != 0 || !type ||
156 .Attach(symbol.name(), "Declaration of '%s'"_en_US, symbol.name());
165 auto WasDefined{[&context](const Symbol &symbol) {
166 return context.IsSymbolDefined(symbol) ||
167 IsInitialized(symbol, /*ignoreDataStatements=*/true,
170 if (const Symbol * symbol{scope.symbol()}) {
171 if (const auto *subp{symbol->detailsIf<SubprogramDetails>()}) {
185 symbol->name(), "Function result is never defined"_warn_en_US);
238 /// the correct symbol size and initial values, even when named common blocks
243 // Common block symbol for the appearance with the biggest size.
245 // Common block symbol for the appearance with the initialized members (if
313 /// Return the symbol of an initialized member if a COMMON block
330 if (!obj.symbol.test(
332 if (FindCommonBlockContaining(obj.symbol) == &common &&
333 IsInitialized(obj.symbol)) {
334 return &obj.symbol;
382 bool SemanticsContext::HasError(const Symbol &symbol) {
383 return errorSymbols_.count(symbol) > 0;
385 bool SemanticsContext::HasError(const Symbol *symbol) {
386 return !symbol || HasError(*symbol);
389 return HasError(name.symbol);
391 void SemanticsContext::SetError(const Symbol &symbol, bool value) {
393 CheckError(symbol);
394 errorSymbols_.emplace(symbol);
397 void SemanticsContext::CheckError(const Symbol &symbol) {
401 ss << symbol;
476 const Symbol &symbol{ResolveAssociations(variable)};
477 auto it{activeIndexVars_.find(symbol)};
480 return &Say(location, std::move(message), kind, symbol.name())
505 if (const Symbol * entity{GetLastName(variable).symbol}) {
511 if (const Symbol * entity{name.symbol}) {
519 if (const Symbol * indexVar{name.symbol}) {
526 if (Symbol * indexVar{name.symbol}) {
536 for (const auto &[symbol, info] : activeIndexVars_) {
538 result.push_back(symbol);
677 const Symbol &symbol{pair.second};
678 if (auto sourceInfo{allCooked.GetSourcePositionRange(symbol.name())}) {
679 os << symbol.name().ToString() << ": " << sourceInfo->first.path << ", "
682 } else if (symbol.has<semantics::UseDetails>()) {
683 os << symbol.name().ToString() << ": "
684 << symbol.GetUltimate().owner().symbol()->name().ToString() << "\n";
692 if (const auto *symbol{scope.symbol()}) {
693 os << ' ' << symbol->name();
704 const auto &symbol{*pair.second};
706 os << symbol << '\n';
707 if (const auto *details{symbol.detailsIf<GenericDetails>()}) {
736 const auto &symbol{*pair.second};
738 os << symbol << '\n';
766 void SemanticsContext::NoteDefinedSymbol(const Symbol &symbol) {
767 isDefined_.insert(symbol);
770 bool SemanticsContext::IsSymbolDefined(const Symbol &symbol) const {
771 return isDefined_.find(symbol) != isDefined_.end();