[flang] review comments
authorEric Schweitz <eschweitz@nvidia.com>
Fri, 15 Mar 2019 19:50:27 +0000 (12:50 -0700)
committerEric Schweitz <eschweitz@nvidia.com>
Fri, 15 Mar 2019 23:23:10 +0000 (16:23 -0700)
Original-commit: flang-compiler/f18@1ba1c0268f293c3b6652d313e68a87cc118f71e3
Reviewed-on: https://github.com/flang-compiler/f18/pull/334
Tree-same-pre-rewrite: false

flang/lib/FIR/afforestation.cc
flang/lib/FIR/mixin.h
flang/lib/FIR/statements.h
flang/lib/FIR/value.h

index 1842497..c253285 100644 (file)
@@ -822,10 +822,10 @@ template<typename T> struct SwitchArgs {
   std::vector<T> values;
   std::vector<LinearLabelRef> labels;
 };
-struct SwitchArguments : public SwitchArgs<SwitchStmt::ValueType> {};
-struct SwitchCaseArguments : public SwitchArgs<SwitchCaseStmt::ValueType> {};
-struct SwitchRankArguments : public SwitchArgs<SwitchRankStmt::ValueType> {};
-struct SwitchTypeArguments : public SwitchArgs<SwitchTypeStmt::ValueType> {};
+using SwitchArguments = SwitchArgs<SwitchStmt::ValueType>;
+using SwitchCaseArguments = SwitchArgs<SwitchCaseStmt::ValueType>;
+using SwitchRankArguments = SwitchArgs<SwitchRankStmt::ValueType>;
+using SwitchTypeArguments = SwitchArgs<SwitchTypeStmt::ValueType>;
 
 template<typename T> bool IsDefault(const typename T::ValueType &valueType) {
   return std::holds_alternative<typename T::Default>(valueType);
index 2af0ff1..2d9e7b7 100644 (file)
@@ -72,7 +72,7 @@ template<typename... Ts> struct ProductTypeMixin {
 };
 
 // implementation of a (moveable) maybe type
-template<typename T>  // T must be std::optional<...>
+template<typename T>
 struct MaybeMixin {
   MaybeMixin(T &&x) : o{std::move(x)} {}
   using MaybeTrait = std::true_type;
index dc8c1f2..5e94266 100644 (file)
@@ -604,12 +604,7 @@ inline Statement *ReturnStmt::returnValue() const {
 }
 
 inline ApplyExprStmt *GetApplyExpr(Statement *stmt) {
-  return std::visit(
-      common::visitors{
-          [](ApplyExprStmt &s) { return &s; },
-          [](auto &) -> ApplyExprStmt * { return nullptr; },
-      },
-      stmt->u);
+  return std::get_if<ApplyExprStmt>(&stmt->u);
 }
 
 Addressable_impl *GetAddressable(Statement *stmt);
index a9382d1..371af46 100644 (file)
@@ -33,17 +33,11 @@ public:
   SUM_TYPE_COPY_MIXIN(Value)
   template<typename A> Value(A *a) : SumTypeCopyMixin{a} {}
   Value(const Nothing &n) : SumTypeCopyMixin{n} {}
-  Value(Nothing &&n) : SumTypeCopyMixin{std::move(n)} {}
   Value() : SumTypeCopyMixin{NOTHING} {}
 };
 
 inline bool IsNothing(Value value) {
-  return std::visit(
-      common::visitors{
-          [](Nothing &) { return true; },
-          [](auto *) { return false; },
-      },
-      value.u);
+  return std::holds_alternative<Nothing>(value.u);
 }
 }