Skip to content

Commit b0e2f46

Browse files
authored
Merge pull request #186 from Unity-Technologies/bug/selector-parse-fix
Fixed a bug when parsing a complex selector and there was no space after a ">".
2 parents 7ee5c37 + 05720ac commit b0e2f46

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/ExCSS.Tests/Sheet.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,5 +1265,21 @@ public void Parse_ZIndex_Out_Of_Range()
12651265
{
12661266
var sheet = ParseStyleSheet(".style{ z-index: 99999999999999999;}");
12671267
}
1268+
1269+
[Fact]
1270+
public void CanHandleGreaterThanSelectorWithNoFollowingSpace()
1271+
{
1272+
var sheet = ParseStyleSheet(@"#collapse-button >#icon{ }");
1273+
Assert.Equal(1, sheet.Rules.Length);
1274+
Assert.IsType<StyleRule>(sheet.Rules[0]);
1275+
var rule = sheet.Rules[0] as StyleRule;
1276+
Assert.IsType<ComplexSelector>(rule.Selector);
1277+
var selector = (ComplexSelector)rule.Selector;
1278+
1279+
var parts = selector.ToList();
1280+
Assert.Equal(2, parts.Count());
1281+
Assert.IsType<IdSelector>(parts[0].Selector);
1282+
Assert.IsType<IdSelector>(parts[1].Selector);
1283+
}
12681284
}
12691285
}

src/ExCSS/Parser/Lexer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ private Token Data(char current)
215215
Advance();
216216
return NewGreaterThanOrEqual();
217217
}
218+
GetPrevious();
218219
return NewGreaterThan();
219220
default:
220221
return current.IsNameStart() ? IdentStart(current) : NewDelimiter(current);

0 commit comments

Comments
 (0)