Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: utils/pub/validator.dart

Issue 12042053: Get rid of unneeded Future.immediate() calls. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library validator; 5 library validator;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'entrypoint.dart'; 9 import 'entrypoint.dart';
10 import 'log.dart' as log; 10 import 'log.dart' as log;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 Entrypoint entrypoint) { 46 Entrypoint entrypoint) {
47 var validators = [ 47 var validators = [
48 new LibValidator(entrypoint), 48 new LibValidator(entrypoint),
49 new LicenseValidator(entrypoint), 49 new LicenseValidator(entrypoint),
50 new NameValidator(entrypoint), 50 new NameValidator(entrypoint),
51 new PubspecFieldValidator(entrypoint), 51 new PubspecFieldValidator(entrypoint),
52 new DependencyValidator(entrypoint), 52 new DependencyValidator(entrypoint),
53 new DirectoryValidator(entrypoint) 53 new DirectoryValidator(entrypoint)
54 ]; 54 ];
55 55
56 // TODO(nweiz): The sleep 0 here forces us to go async. This works around 56 return Future.wait(validators.mappedBy((validator) => validator.validate()))
57 // 3356, which causes a bug if all validators are (synchronously) using 57 .then((_) {
58 // Future.immediate and an error is thrown before a handler is set up.
59 return sleep(0).then((_) {
60 return Future.wait(
61 validators.mappedBy((validator) => validator.validate()));
62 }).then((_) {
63 var errors = 58 var errors =
64 flatten(validators.mappedBy((validator) => validator.errors)); 59 flatten(validators.mappedBy((validator) => validator.errors));
65 var warnings = 60 var warnings =
66 flatten(validators.mappedBy((validator) => validator.warnings)); 61 flatten(validators.mappedBy((validator) => validator.warnings));
67 62
68 if (!errors.isEmpty) { 63 if (!errors.isEmpty) {
69 log.error("Missing requirements:"); 64 log.error("Missing requirements:");
70 for (var error in errors) { 65 for (var error in errors) {
71 log.error("* ${Strings.join(error.split('\n'), '\n ')}"); 66 log.error("* ${Strings.join(error.split('\n'), '\n ')}");
72 } 67 }
73 log.error(""); 68 log.error("");
74 } 69 }
75 70
76 if (!warnings.isEmpty) { 71 if (!warnings.isEmpty) {
77 log.warning("Suggestions:"); 72 log.warning("Suggestions:");
78 for (var warning in warnings) { 73 for (var warning in warnings) {
79 log.warning("* ${Strings.join(warning.split('\n'), '\n ')}"); 74 log.warning("* ${Strings.join(warning.split('\n'), '\n ')}");
80 } 75 }
81 log.warning(""); 76 log.warning("");
82 } 77 }
83 78
84 return new Pair<List<String>, List<String>>(errors, warnings); 79 return new Pair<List<String>, List<String>>(errors, warnings);
85 }); 80 });
86 } 81 }
87 } 82 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698