• T
    Allow omission of the '.' after nullary tag patterns · c3bc8fad
    Tim Chevalier 提交于
    This commit allows patterns like:
    
    alt x { some(_) { ... } none { } }
    
    without the '.' after none. The parser suspends judgment about
    whether a bare ident is a tag or a new bound variable; instead,
    the resolver disambiguates.
    
    This means that any code after resolution that pattern-matches on
    patterns needs to call pat_util::normalize_pat, which consults
    an environment to do this disambiguation.
    
    In addition, local variables are no longer allowed to shadow
    tag names, so this required changing some code (e.g. renaming
    variables named "mut", and renaming ast::sub to subtract).
    
    The parser currently accepts patterns with and without the '.'.
    Once the compiler and libraries are changed, it will no longer
    accept the '.'.
    c3bc8fad
rope.rs 35.2 KB