| Index: src/flags.cc | 
| diff --git a/src/flags.cc b/src/flags.cc | 
| index 5ad0ee0e625ee23023b960fc66c6b30b79272083..4e18cc8c80832b5b1217424acecfa9e9c3578190 100644 | 
| --- a/src/flags.cc | 
| +++ b/src/flags.cc | 
| @@ -55,8 +55,7 @@ namespace { | 
| // to the actual flag, default value, comment, etc.  This is designed to be POD | 
| // initialized as to avoid requiring static constructors. | 
| struct Flag { | 
| -  enum FlagType { TYPE_BOOL, TYPE_MAYBE_BOOL, TYPE_INT, TYPE_FLOAT, | 
| -                  TYPE_STRING, TYPE_ARGS }; | 
| +  enum FlagType { TYPE_BOOL, TYPE_INT, TYPE_FLOAT, TYPE_STRING, TYPE_ARGS }; | 
|  | 
| FlagType type_;           // What type of flag, bool, int, or string. | 
| const char* name_;        // Name of the flag, ex "my_flag". | 
| @@ -76,11 +75,6 @@ struct Flag { | 
| return reinterpret_cast<bool*>(valptr_); | 
| } | 
|  | 
| -  Maybe<bool>* maybe_bool_variable() const { | 
| -    ASSERT(type_ == TYPE_MAYBE_BOOL); | 
| -    return reinterpret_cast<Maybe<bool>*>(valptr_); | 
| -  } | 
| - | 
| int* int_variable() const { | 
| ASSERT(type_ == TYPE_INT); | 
| return reinterpret_cast<int*>(valptr_); | 
| @@ -139,8 +133,6 @@ struct Flag { | 
| switch (type_) { | 
| case TYPE_BOOL: | 
| return *bool_variable() == bool_default(); | 
| -      case TYPE_MAYBE_BOOL: | 
| -        return maybe_bool_variable()->has_value == false; | 
| case TYPE_INT: | 
| return *int_variable() == int_default(); | 
| case TYPE_FLOAT: | 
| @@ -165,9 +157,6 @@ struct Flag { | 
| case TYPE_BOOL: | 
| *bool_variable() = bool_default(); | 
| break; | 
| -      case TYPE_MAYBE_BOOL: | 
| -        *maybe_bool_variable() = Maybe<bool>(); | 
| -        break; | 
| case TYPE_INT: | 
| *int_variable() = int_default(); | 
| break; | 
| @@ -197,7 +186,6 @@ const size_t num_flags = sizeof(flags) / sizeof(*flags); | 
| static const char* Type2String(Flag::FlagType type) { | 
| switch (type) { | 
| case Flag::TYPE_BOOL: return "bool"; | 
| -    case Flag::TYPE_MAYBE_BOOL: return "maybe_bool"; | 
| case Flag::TYPE_INT: return "int"; | 
| case Flag::TYPE_FLOAT: return "float"; | 
| case Flag::TYPE_STRING: return "string"; | 
| @@ -215,11 +203,6 @@ static SmartArrayPointer<const char> ToString(Flag* flag) { | 
| case Flag::TYPE_BOOL: | 
| buffer.Add("%s", (*flag->bool_variable() ? "true" : "false")); | 
| break; | 
| -    case Flag::TYPE_MAYBE_BOOL: | 
| -      buffer.Add("%s", flag->maybe_bool_variable()->has_value | 
| -                       ? (flag->maybe_bool_variable()->value ? "true" : "false") | 
| -                       : "unset"); | 
| -      break; | 
| case Flag::TYPE_INT: | 
| buffer.Add("%d", *flag->int_variable()); | 
| break; | 
| @@ -397,7 +380,6 @@ int FlagList::SetFlagsFromCommandLine(int* argc, | 
|  | 
| // if we still need a flag value, use the next argument if available | 
| if (flag->type() != Flag::TYPE_BOOL && | 
| -          flag->type() != Flag::TYPE_MAYBE_BOOL && | 
| flag->type() != Flag::TYPE_ARGS && | 
| value == NULL) { | 
| if (i < *argc) { | 
| @@ -417,9 +399,6 @@ int FlagList::SetFlagsFromCommandLine(int* argc, | 
| case Flag::TYPE_BOOL: | 
| *flag->bool_variable() = !is_bool; | 
| break; | 
| -        case Flag::TYPE_MAYBE_BOOL: | 
| -          *flag->maybe_bool_variable() = Maybe<bool>(!is_bool); | 
| -          break; | 
| case Flag::TYPE_INT: | 
| *flag->int_variable() = strtol(value, &endp, 10);  // NOLINT | 
| break; | 
| @@ -446,9 +425,8 @@ int FlagList::SetFlagsFromCommandLine(int* argc, | 
| } | 
|  | 
| // handle errors | 
| -      bool is_bool_type = flag->type() == Flag::TYPE_BOOL || | 
| -          flag->type() == Flag::TYPE_MAYBE_BOOL; | 
| -      if ((is_bool_type && value != NULL) || (!is_bool_type && is_bool) || | 
| +      if ((flag->type() == Flag::TYPE_BOOL && value != NULL) || | 
| +          (flag->type() != Flag::TYPE_BOOL && is_bool) || | 
| *endp != '\0') { | 
| PrintF(stderr, "Error: illegal value for flag %s of type %s\n" | 
| "Try --help for options\n", | 
| @@ -571,7 +549,6 @@ void FlagList::PrintHelp() { | 
| } | 
|  | 
|  | 
| -// static | 
| void FlagList::EnforceFlagImplications() { | 
| #define FLAG_MODE_DEFINE_IMPLICATIONS | 
| #include "flag-definitions.h" | 
|  |