Index: packages/glob/lib/src/ast.dart |
diff --git a/packages/glob/lib/src/ast.dart b/packages/glob/lib/src/ast.dart |
index 5e24e2b9020467255acdc0a65fbf5c12f95e5087..130342eb185142e23c82a7ea4148730ef72c8b14 100644 |
--- a/packages/glob/lib/src/ast.dart |
+++ b/packages/glob/lib/src/ast.dart |
@@ -38,9 +38,9 @@ abstract class AstNode { |
/// |
/// For example, given the glob `{foo,bar}/{click/clack}`, this would return |
/// `{foo/click,foo/clack,bar/click,bar/clack}`. |
- OptionsNode flattenOptions() => new OptionsNode( |
- [new SequenceNode([this], caseSensitive: caseSensitive)], |
- caseSensitive: caseSensitive); |
+ OptionsNode flattenOptions() => new OptionsNode([ |
+ new SequenceNode([this], caseSensitive: caseSensitive) |
+ ], caseSensitive: caseSensitive); |
/// Returns whether this glob matches [string]. |
bool matches(String string) { |
@@ -71,8 +71,8 @@ class SequenceNode extends AstNode { |
return new OptionsNode([this], caseSensitive: caseSensitive); |
} |
- var sequences = nodes.first.flattenOptions().options |
- .map((sequence) => sequence.nodes); |
+ var sequences = |
+ nodes.first.flattenOptions().options.map((sequence) => sequence.nodes); |
for (var node in nodes.skip(1)) { |
// Concatenate all sequences in the next options node ([nextSequences]) |
// onto all previous sequences ([sequences]). |
@@ -86,18 +86,22 @@ class SequenceNode extends AstNode { |
return new OptionsNode(sequences.map((sequence) { |
// Combine any adjacent LiteralNodes in [sequence]. |
- return new SequenceNode(sequence.fold/*<List<AstNode>>*/([], (combined, node) { |
- if (combined.isEmpty || combined.last is! LiteralNode || |
- node is! LiteralNode) { |
- return combined..add(node); |
- } |
- |
- combined[combined.length - 1] = new LiteralNode( |
- // TODO(nweiz): Avoid casting when sdk#25565 is fixed. |
- (combined.last as LiteralNode).text + (node as LiteralNode).text, |
- caseSensitive: caseSensitive); |
- return combined; |
- }), caseSensitive: caseSensitive); |
+ return new SequenceNode( |
+ sequence.fold<List<AstNode>>([], (combined, node) { |
+ if (combined.isEmpty || |
+ combined.last is! LiteralNode || |
+ node is! LiteralNode) { |
+ return combined..add(node); |
+ } |
+ |
+ combined[combined.length - 1] = new LiteralNode( |
+ // TODO(nweiz): Avoid casting when sdk#25565 is fixed. |
+ (combined.last as LiteralNode).text + |
+ (node as LiteralNode).text, |
+ caseSensitive: caseSensitive); |
+ return combined; |
+ }), |
+ caseSensitive: caseSensitive); |
}), caseSensitive: caseSensitive); |
} |
@@ -185,7 +189,8 @@ class SequenceNode extends AstNode { |
String _toRegExp() => nodes.map((node) => node._toRegExp()).join(); |
- bool operator==(Object other) => other is SequenceNode && |
+ bool operator ==(Object other) => |
+ other is SequenceNode && |
const IterableEquality().equals(nodes, other.nodes); |
int get hashCode => const IterableEquality().hash(nodes); |
@@ -199,7 +204,7 @@ class StarNode extends AstNode { |
String _toRegExp() => '[^/]*'; |
- bool operator==(Object other) => other is StarNode; |
+ bool operator ==(Object other) => other is StarNode; |
int get hashCode => 0; |
@@ -241,7 +246,7 @@ class DoubleStarNode extends AstNode { |
return buffer.toString(); |
} |
- bool operator==(Object other) => other is DoubleStarNode; |
+ bool operator ==(Object other) => other is DoubleStarNode; |
int get hashCode => 1; |
@@ -254,7 +259,7 @@ class AnyCharNode extends AstNode { |
String _toRegExp() => '[^/]'; |
- bool operator==(Object other) => other is AnyCharNode; |
+ bool operator ==(Object other) => other is AnyCharNode; |
int get hashCode => 2; |
@@ -319,7 +324,7 @@ class RangeNode extends AstNode { |
return buffer.toString(); |
} |
- bool operator==(Object other) { |
+ bool operator ==(Object other) { |
if (other is! RangeNode) return false; |
if ((other as RangeNode).negated != negated) return false; |
return const SetEquality().equals(ranges, (other as RangeNode).ranges); |
@@ -359,7 +364,8 @@ class OptionsNode extends AstNode { |
String _toRegExp() => |
'(?:${options.map((option) => option._toRegExp()).join("|")})'; |
- bool operator==(Object other) => other is OptionsNode && |
+ bool operator ==(Object other) => |
+ other is OptionsNode && |
const UnorderedIterableEquality().equals(options, other.options); |
int get hashCode => const UnorderedIterableEquality().hash(options); |
@@ -378,8 +384,8 @@ class LiteralNode extends AstNode { |
final p.Context _context; |
bool get canMatchAbsolute { |
- var nativeText = _context.style == p.Style.windows ? |
- text.replaceAll('/', '\\') : text; |
+ var nativeText = |
+ _context.style == p.Style.windows ? text.replaceAll('/', '\\') : text; |
return _context.isAbsolute(nativeText); |
} |
@@ -391,7 +397,7 @@ class LiteralNode extends AstNode { |
String _toRegExp() => regExpQuote(text); |
- bool operator==(Object other) => other is LiteralNode && other.text == text; |
+ bool operator ==(Object other) => other is LiteralNode && other.text == text; |
int get hashCode => text.hashCode; |