about summary refs log tree commit diff
path: root/src/libregex/parse.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libregex/parse.rs')
-rw-r--r--src/libregex/parse.rs6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/libregex/parse.rs b/src/libregex/parse.rs
index b7313ff6c1a..35583be372c 100644
--- a/src/libregex/parse.rs
+++ b/src/libregex/parse.rs
@@ -374,10 +374,6 @@ impl<'a> Parser<'a> {
         let mut ranges: Vec<(char, char)> = vec!();
         let mut alts: Vec<Ast> = vec!();
 
-        if self.peek_is(1, ']') {
-            try!(self.expect(']'));
-            ranges.push((']', ']'))
-        }
         while self.peek_is(1, '-') {
             try!(self.expect('-'));
             ranges.push(('-', '-'))
@@ -411,7 +407,7 @@ impl<'a> Parser<'a> {
                         ast => fail!("Unexpected AST item '{}'", ast),
                     }
                 }
-                ']' => {
+                ']' if ranges.len() > 0 || alts.len() > 0 => {
                     if ranges.len() > 0 {
                         let flags = negated | (self.flags & FLAG_NOCASE);
                         let mut ast = AstClass(combine_ranges(ranges), flags);