Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gate parser recovery via debugflag #32494

Merged
merged 2 commits into from
Mar 31, 2016

Commits on Mar 30, 2016

  1. Put in -Z continue-parse-after-error

    This works by adding a boolean flag, `continue_after_error`, to
    `syntax::errors::Handler` that can be imperatively set to `true` or
    `false` via a new `fn set_continue_after_error`.
    
    The flag starts off true (since we generally try to recover from
    compiler errors, and `Handler` is shared across all phases).
    
    Then, during the `phase_1_parse_input`, we consult the setting of the
    `-Z continue-parse-after-error` debug flag to determine whether we
    should leave the flag set to `true` or should change it to `false`.
    
    ----
    
    (We might consider adding a debugflag to do such aborts in other
    places where we are currently attempting recovery, such as resolve,
    but I think the parser is the really important case to handle in the
    face of rust-lang#31994 and the parser bugs of varying degrees that were
    injected by parse error recovery.)
    pnkfelix committed Mar 30, 2016
    Configuration menu
    Copy the full SHA
    2646663 View commit details
    Browse the repository at this point in the history
  2. fix compile-fail and parse-fail tests by blindly opting back into

    parser recovery (so that expected errors match up)
    
    I'm opting into parser recovery in all these cases out of expediency,
    not because the error messages you get with recovery enabled are
    actually all that usable in all cases listed.
    pnkfelix committed Mar 30, 2016
    Configuration menu
    Copy the full SHA
    e1d8ad3 View commit details
    Browse the repository at this point in the history