Skip to content

Commit 4c8ba1c

Browse files
committed
---
yaml --- r: 157599 b: refs/heads/snap-stage3 c: f219773 h: refs/heads/master i: 157597: cd8633b 157595: 01c1b1c 157591: cba15e0 157583: 71bfd64 157567: bcc719a v: v3
1 parent 0674d1f commit 4c8ba1c

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 065caf34f5ff29e04605f95d9c5d511af219439a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: 48daba088b0f353cc4fdaba144da7a2c1b1de87f
4+
refs/heads/snap-stage3: f21977318112a1b7491bbf462dfefbd8ec14743e
55
refs/heads/try: 0ee4d8b0b112c608646fa75463ab4dc59132efd9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/libregex/parse.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -374,10 +374,6 @@ impl<'a> Parser<'a> {
374374
let mut ranges: Vec<(char, char)> = vec!();
375375
let mut alts: Vec<Ast> = vec!();
376376

377-
if self.peek_is(1, ']') {
378-
try!(self.expect(']'));
379-
ranges.push((']', ']'))
380-
}
381377
while self.peek_is(1, '-') {
382378
try!(self.expect('-'));
383379
ranges.push(('-', '-'))
@@ -411,7 +407,7 @@ impl<'a> Parser<'a> {
411407
ast => fail!("Unexpected AST item '{}'", ast),
412408
}
413409
}
414-
']' => {
410+
']' if ranges.len() > 0 || alts.len() > 0 => {
415411
if ranges.len() > 0 {
416412
let flags = negated | (self.flags & FLAG_NOCASE);
417413
let mut ast = AstClass(combine_ranges(ranges), flags);

branches/snap-stage3/src/libregex/test/tests.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ fn quoted_bracket_set() {
5353
assert_eq!(ms, vec![(0, 1), (1, 2)]);
5454
}
5555

56+
#[test]
57+
fn first_range_starts_with_left_bracket() {
58+
let re = regex!(r"([[-z])");
59+
let ms = re.find_iter("[]").collect::<Vec<(uint, uint)>>();
60+
assert_eq!(ms, vec![(0, 1), (1, 2)]);
61+
}
62+
5663
#[test]
5764
fn range_ends_with_escape() {
5865
let re = regex!(r"([\[-\x{5d}])");

0 commit comments

Comments
 (0)