Fix copy-pasteo in expression-classifier.h
authorwingo <wingo@igalia.com>
Wed, 10 Jun 2015 09:12:47 +0000 (02:12 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 10 Jun 2015 09:12:59 +0000 (09:12 +0000)
R=dslomov@chromium.org
LOG=N
BUG=

Review URL: https://codereview.chromium.org/1174543003

Cr-Commit-Position: refs/heads/master@{#28896}

src/expression-classifier.h

index af761fb2bf66d74d0ab4ab031af8e8e32a7f8d37..6edb99e8388427514f662f312c6341935150edac 100644 (file)
@@ -119,222 +119,6 @@ class ExpressionClassifier {
     if (!is_valid_expression()) return;
     invalid_productions_ |= ExpressionProduction;
     expression_error_.location = loc;
-    class ExpressionClassifier {
-     public:
-      struct Error {
-        Error()
-            : location(Scanner::Location::invalid()),
-              message(MessageTemplate::kNone),
-              arg(nullptr) {}
-
-        Scanner::Location location;
-        MessageTemplate::Template message;
-        const char* arg;
-
-        bool HasError() const { return location.IsValid(); }
-      };
-
-      ExpressionClassifier() : duplicate_finder_(nullptr) {}
-
-      explicit ExpressionClassifier(DuplicateFinder* duplicate_finder)
-          : duplicate_finder_(duplicate_finder) {}
-
-      DuplicateFinder* duplicate_finder() const { return duplicate_finder_; }
-
-      bool is_valid_expression() const { return !expression_error_.HasError(); }
-
-      bool is_valid_binding_pattern() const {
-        return !binding_pattern_error_.HasError();
-      }
-
-      bool is_valid_assignment_pattern() const {
-        return !assignment_pattern_error_.HasError();
-      }
-
-      bool is_valid_arrow_formal_parameters() const {
-        return !arrow_formal_parameters_error_.HasError();
-      }
-
-      bool is_valid_formal_parameter_list_without_duplicates() const {
-        return !duplicate_formal_parameter_error_.HasError();
-      }
-
-      // Note: callers should also check
-      // is_valid_formal_parameter_list_without_duplicates().
-      bool is_valid_strict_mode_formal_parameters() const {
-        return !strict_mode_formal_parameter_error_.HasError();
-      }
-
-      // Note: callers should also check
-      // is_valid_strict_mode_formal_parameters()
-      // and is_valid_formal_parameter_list_without_duplicates().
-      bool is_valid_strong_mode_formal_parameters() const {
-        return !strong_mode_formal_parameter_error_.HasError();
-      }
-
-      const Error& expression_error() const { return expression_error_; }
-
-      const Error& binding_pattern_error() const {
-        return binding_pattern_error_;
-      }
-
-      const Error& assignment_pattern_error() const {
-        return assignment_pattern_error_;
-      }
-
-      const Error& arrow_formal_parameters_error() const {
-        return arrow_formal_parameters_error_;
-      }
-
-      const Error& duplicate_formal_parameter_error() const {
-        return duplicate_formal_parameter_error_;
-      }
-
-      const Error& strict_mode_formal_parameter_error() const {
-        return strict_mode_formal_parameter_error_;
-      }
-
-      const Error& strong_mode_formal_parameter_error() const {
-        return strong_mode_formal_parameter_error_;
-      }
-
-      void RecordExpressionError(const Scanner::Location& loc,
-                                 MessageTemplate::Template message,
-                                 const char* arg = nullptr) {
-        if (!is_valid_expression()) return;
-        expression_error_.location = loc;
-        expression_error_.message = message;
-        expression_error_.arg = arg;
-      }
-
-      void RecordBindingPatternError(const Scanner::Location& loc,
-                                     MessageTemplate::Template message,
-                                     const char* arg = nullptr) {
-        if (!is_valid_binding_pattern()) return;
-        binding_pattern_error_.location = loc;
-        binding_pattern_error_.message = message;
-        binding_pattern_error_.arg = arg;
-      }
-
-      void RecordAssignmentPatternError(const Scanner::Location& loc,
-                                        MessageTemplate::Template message,
-                                        const char* arg = nullptr) {
-        if (!is_valid_assignment_pattern()) return;
-        assignment_pattern_error_.location = loc;
-        assignment_pattern_error_.message = message;
-        assignment_pattern_error_.arg = arg;
-      }
-
-      void RecordArrowFormalParametersError(const Scanner::Location& loc,
-                                            MessageTemplate::Template message,
-                                            const char* arg = nullptr) {
-        if (!is_valid_arrow_formal_parameters()) return;
-        arrow_formal_parameters_error_.location = loc;
-        arrow_formal_parameters_error_.message = message;
-        arrow_formal_parameters_error_.arg = arg;
-      }
-
-      void RecordDuplicateFormalParameterError(const Scanner::Location& loc) {
-        if (!is_valid_formal_parameter_list_without_duplicates()) return;
-        duplicate_formal_parameter_error_.location = loc;
-        duplicate_formal_parameter_error_.message =
-            MessageTemplate::kStrictParamDupe;
-        duplicate_formal_parameter_error_.arg = nullptr;
-      }
-
-      // Record a binding that would be invalid in strict mode.  Confusingly
-      // this
-      // is not the same as StrictFormalParameterList, which simply forbids
-      // duplicate bindings.
-      void RecordStrictModeFormalParameterError(
-          const Scanner::Location& loc, MessageTemplate::Template message,
-          const char* arg = nullptr) {
-        if (!is_valid_strict_mode_formal_parameters()) return;
-        strict_mode_formal_parameter_error_.location = loc;
-        strict_mode_formal_parameter_error_.message = message;
-        strict_mode_formal_parameter_error_.arg = arg;
-      }
-
-      void RecordStrongModeFormalParameterError(
-          const Scanner::Location& loc, MessageTemplate::Template message,
-          const char* arg = nullptr) {
-        if (!is_valid_strong_mode_formal_parameters()) return;
-        strong_mode_formal_parameter_error_.location = loc;
-        strong_mode_formal_parameter_error_.message = message;
-        strong_mode_formal_parameter_error_.arg = arg;
-      }
-
-      enum TargetProduction {
-        ExpressionProduction = 1 << 0,
-        BindingPatternProduction = 1 << 1,
-        AssignmentPatternProduction = 1 << 2,
-        FormalParametersProduction = 1 << 3,
-        ArrowFormalParametersProduction = 1 << 4,
-        StandardProductions = (ExpressionProduction | BindingPatternProduction |
-                               AssignmentPatternProduction),
-        PatternProductions =
-            BindingPatternProduction | AssignmentPatternProduction,
-        AllProductions = (StandardProductions | FormalParametersProduction |
-                          ArrowFormalParametersProduction),
-      };
-
-      void Accumulate(const ExpressionClassifier& inner,
-                      unsigned productions = StandardProductions) {
-        if (productions & ExpressionProduction && is_valid_expression()) {
-          expression_error_ = inner.expression_error_;
-        }
-        if (productions & BindingPatternProduction &&
-            is_valid_binding_pattern()) {
-          binding_pattern_error_ = inner.binding_pattern_error_;
-        }
-        if (productions & AssignmentPatternProduction &&
-            is_valid_assignment_pattern()) {
-          assignment_pattern_error_ = inner.assignment_pattern_error_;
-        }
-        if (productions & FormalParametersProduction) {
-          if (is_valid_formal_parameter_list_without_duplicates()) {
-            duplicate_formal_parameter_error_ =
-                inner.duplicate_formal_parameter_error_;
-          }
-          if (is_valid_strict_mode_formal_parameters()) {
-            strict_mode_formal_parameter_error_ =
-                inner.strict_mode_formal_parameter_error_;
-          }
-          if (is_valid_strong_mode_formal_parameters()) {
-            strong_mode_formal_parameter_error_ =
-                inner.strong_mode_formal_parameter_error_;
-          }
-        }
-        if (productions & ArrowFormalParametersProduction &&
-            is_valid_arrow_formal_parameters()) {
-          // The result continues to be a valid arrow formal parameters if the
-          // inner expression is a valid binding pattern.
-          arrow_formal_parameters_error_ = inner.binding_pattern_error_;
-        }
-      }
-
-      void AccumulateReclassifyingAsPattern(const ExpressionClassifier& inner) {
-        Accumulate(inner, AllProductions & ~PatternProductions);
-        if (!inner.is_valid_expression()) {
-          if (is_valid_binding_pattern()) {
-            binding_pattern_error_ = inner.expression_error();
-          }
-          if (is_valid_assignment_pattern()) {
-            assignment_pattern_error_ = inner.expression_error();
-          }
-        }
-      }
-
-     private:
-      Error expression_error_;
-      Error binding_pattern_error_;
-      Error assignment_pattern_error_;
-      Error arrow_formal_parameters_error_;
-      Error duplicate_formal_parameter_error_;
-      Error strict_mode_formal_parameter_error_;
-      Error strong_mode_formal_parameter_error_;
-      DuplicateFinder* duplicate_finder_;
-    };
     expression_error_.message = message;
     expression_error_.arg = arg;
   }