[flang] Address review comments
authorTim Keith <tkeith@nvidia.com>
Thu, 23 Aug 2018 18:24:12 +0000 (11:24 -0700)
committerTim Keith <tkeith@nvidia.com>
Thu, 23 Aug 2018 18:24:12 +0000 (11:24 -0700)
Original-commit: flang-compiler/f18@c30cbc8158c308902293877402554d052cbe2ac4
Reviewed-on: https://github.com/flang-compiler/f18/pull/167
Tree-same-pre-rewrite: false

flang/lib/semantics/resolve-names.cc
flang/lib/semantics/scope.cc
flang/lib/semantics/scope.h

index 4f566be866f368eb0fdad3122949c925cd875c09..1a2ebbc1cae9979630d076a2b3a778ef879e169b 100644 (file)
@@ -1330,7 +1330,7 @@ bool ModuleVisitor::Pre(const parser::Submodule &x) {
   }
   PushScope(*parentScope);  // submodule is hosted in parent
   auto &symbol{BeginModule(name, true, subpPart)};
-  if (!ancestor->AddSubmodule(name, &currScope())) {
+  if (!ancestor->AddSubmodule(name, currScope())) {
     Say(name, "Module '%s' already has a submodule named '%s'"_err_en_US,
         ancestorName, name);
   }
@@ -2151,7 +2151,7 @@ void ResolveNamesVisitor::Post(const parser::CallStmt &) {
 bool ResolveNamesVisitor::Pre(const parser::ImportStmt &x) {
   auto kind{MapImportKind(x.kind)};
   auto &scope{currScope()};
-  // Check C896 and C899
+  // Check C896 and C899: where IMPORT statements are allowed
   switch (scope.kind()) {
   case Scope::Kind::Module:
     if (!scope.symbol()->get<ModuleDetails>().isSubmodule()) {
@@ -2173,7 +2173,7 @@ bool ResolveNamesVisitor::Pre(const parser::ImportStmt &x) {
     break;
   default:;
   }
-  if (auto error{scope.set_importKind(kind)}) {
+  if (auto error{scope.SetImportKind(kind)}) {
     Say(std::move(*error));
   }
   for (auto &name : x.names) {
index df380b836cdb7ac7129da4789a11802a82c9cb8e..a3cf591d9c27cafcd34fddbaebc287986cb46fa7 100644 (file)
@@ -66,8 +66,8 @@ Scope *Scope::FindSubmodule(const SourceName &name) const {
     return it->second;
   }
 }
-bool Scope::AddSubmodule(const SourceName &name, Scope *submodule) {
-  return submodules_.emplace(name, submodule).second;
+bool Scope::AddSubmodule(const SourceName &name, Scope &submodule) {
+  return submodules_.emplace(name, &submodule).second;
 }
 DerivedTypeSpec &Scope::MakeDerivedTypeSpec(const SourceName &name) {
   derivedTypeSpecs_.emplace_back(name);
@@ -88,7 +88,7 @@ Scope::ImportKind Scope::importKind() const {
   return ImportKind::Default;
 }
 
-std::optional<parser::MessageFixedText> Scope::set_importKind(ImportKind kind) {
+std::optional<parser::MessageFixedText> Scope::SetImportKind(ImportKind kind) {
   if (!importKind_.has_value()) {
     importKind_ = kind;
     return std::nullopt;
@@ -96,7 +96,7 @@ std::optional<parser::MessageFixedText> Scope::set_importKind(ImportKind kind) {
   std::optional<parser::MessageFixedText> error;
   bool hasNone{kind == ImportKind::None || *importKind_ == ImportKind::None};
   bool hasAll{kind == ImportKind::All || *importKind_ == ImportKind::All};
-  // Check C8100 and C898
+  // Check C8100 and C898: constraints on multiple IMPORT statements
   if (hasNone || hasAll) {
     return hasNone
         ? "IMPORT,NONE must be the only IMPORT statement in a scope"_err_en_US
index bcb8bf83d8d11ec8afb6daabfe68509dd954d703..cd5ab31d3dbbca6ab55f45777e19e310438867c0 100644 (file)
@@ -117,7 +117,7 @@ public:
   // For Module scope, maintain a mapping of all submodule scopes with this
   // module as its ancestor module. AddSubmodule returns false if already there.
   Scope *FindSubmodule(const SourceName &) const;
-  bool AddSubmodule(const SourceName &, Scope *);
+  bool AddSubmodule(const SourceName &, Scope &);
 
   DerivedTypeSpec &MakeDerivedTypeSpec(const SourceName &);
 
@@ -131,7 +131,7 @@ public:
 
   // Set the kind of imports from host into this scope.
   // Return an error message for incompatible kinds.
-  std::optional<parser::MessageFixedText> set_importKind(ImportKind);
+  std::optional<parser::MessageFixedText> SetImportKind(ImportKind);
 
   bool add_importName(const SourceName &);