Small cleanup on single set add (#29)
- Add generic type on Set constructor.
- Use `??=` for null defaulting.
- Avoid the extra `set.contains` check since `set.add` already returns a
bool indicating if the element is new.
diff --git a/lib/src/list_tree.dart b/lib/src/list_tree.dart
index 8a23b1c..0572382 100644
--- a/lib/src/list_tree.dart
+++ b/lib/src/list_tree.dart
@@ -169,7 +169,7 @@
/// List all entities that match this glob beneath [root].
Stream<FileSystemEntity> list({String root, bool followLinks = true}) {
- if (root == null) root = '.';
+ root ??= '.';
var group = StreamGroup<FileSystemEntity>();
for (var rootDir in _trees.keys) {
var dir = rootDir == '.' ? root : rootDir;
@@ -179,20 +179,15 @@
if (!_canOverlap) return group.stream;
- // TODO(nweiz): Rather than filtering here, avoid double-listing directories
+ // TODO: Rather than filtering here, avoid double-listing directories
// in the first place.
- var seen = Set();
- return group.stream.where((entity) {
- if (seen.contains(entity.path)) return false;
- seen.add(entity.path);
- return true;
- });
+ var seen = Set<String>();
+ return group.stream.where((entity) => seen.add(entity.path));
}
/// Synchronosuly list all entities that match this glob beneath [root].
List<FileSystemEntity> listSync({String root, bool followLinks = true}) {
- if (root == null) root = '.';
-
+ root ??= '.';
var result = _trees.keys.expand((rootDir) {
var dir = rootDir == '.' ? root : rootDir;
return _trees[rootDir].listSync(dir, followLinks: followLinks);
@@ -200,14 +195,10 @@
if (!_canOverlap) return result.toList();
- // TODO(nweiz): Rather than filtering here, avoid double-listing directories
+ // TODO: Rather than filtering here, avoid double-listing directories
// in the first place.
var seen = Set<String>();
- return result.where((entity) {
- if (seen.contains(entity.path)) return false;
- seen.add(entity.path);
- return true;
- }).toList();
+ return result.where((entity) => seen.add(entity.path)).toList();
}
}
diff --git a/pubspec.yaml b/pubspec.yaml
index bc7f6af..f2c65e5 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
name: glob
-version: 1.2.0
+version: 1.2.1-dev
description: Bash-style filename globbing.
author: Dart Team <misc@dartlang.org>