parameters: (self, token, last_non_space_token)
docstring: Handles a token that is an open bracket.
  
      Args:
        token: The token to handle.
        last_non_space_token: The last token that was not a space.
docstring_summary: Handles a token that is an open bracket.
docstring_tokens: Handles a token that is an open bracket .
function: def _HandleStartBracket(self, token, last_non_space_token):
      """Handles a token that is an open bracket.
  
      Args:
        token: The token to handle.
        last_non_space_token: The last token that was not a space.
      """
      if (not token.IsFirstInLine() and token.previous.type == Type.WHITESPACE and
          last_non_space_token and
          last_non_space_token.type in Type.EXPRESSION_ENDER_TYPES):
        self._HandleError(errors.EXTRA_SPACE, 'Extra space before "["',
                          token.previous, Position.All(token.previous.string))
      # If the [ token is the first token in a line we shouldn't complain
      # about a missing space before [.  This is because some Ecma script
      # languages allow syntax like:
      # [Annotation]
      # class MyClass {...}
      # So we don't want to blindly warn about missing spaces before [.
      # In the the future, when rules for computing exactly how many spaces
      # lines should be indented are added, then we can return errors for
      # [ tokens that are improperly indented.
      # For example:
      # var someVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongVariableName =
      # [a,b,c];
      # should trigger a proper indentation warning message as [ is not indented
      # by four spaces.
      elif (not token.IsFirstInLine() and token.previous and
            not token.previous.type in (
                [Type.WHITESPACE, Type.START_PAREN, Type.START_BRACKET] +
                Type.EXPRESSION_ENDER_TYPES)):
        self._HandleError(errors.MISSING_SPACE, 'Missing space before "["',
                          token, Position.AtBeginning())
function_tokens: def _HandleStartBracket ( self , token , last_non_space_token ) : if ( not token . IsFirstInLine ( ) and token . previous . type == Type . WHITESPACE and last_non_space_token and last_non_space_token . type in Type . EXPRESSION_ENDER_TYPES ) : self . _HandleError ( errors . EXTRA_SPACE , 'Extra space before "["' , token . previous , Position . All ( token . previous . string ) ) # If the [ token is the first token in a line we shouldn't complain # about a missing space before [.  This is because some Ecma script # languages allow syntax like: # [Annotation] # class MyClass {...} # So we don't want to blindly warn about missing spaces before [. # In the the future, when rules for computing exactly how many spaces # lines should be indented are added, then we can return errors for # [ tokens that are improperly indented. # For example: # var someVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongVariableName = # [a,b,c]; # should trigger a proper indentation warning message as [ is not indented # by four spaces. elif ( not token . IsFirstInLine ( ) and token . previous and not token . previous . type in ( [ Type . WHITESPACE , Type . START_PAREN , Type . START_BRACKET ] + Type . EXPRESSION_ENDER_TYPES ) ) : self . _HandleError ( errors . MISSING_SPACE , 'Missing space before "["' , token , Position . AtBeginning ( ) )