| Index: tests/compiler/dart2js/show_package_warnings_test.dart | 
| diff --git a/tests/compiler/dart2js/show_package_warnings_test.dart b/tests/compiler/dart2js/show_package_warnings_test.dart | 
| index 6a1aa3f1fc77c5cf5b18650ef7ad654dad7b6f1d..cc05018def2e14930262e90098d64267023568b7 100644 | 
| --- a/tests/compiler/dart2js/show_package_warnings_test.dart | 
| +++ b/tests/compiler/dart2js/show_package_warnings_test.dart | 
| @@ -20,47 +20,81 @@ m(Object o) { | 
|  | 
| const SOURCE = const { | 
| 'main.dart': """ | 
| -import 'package:pkg_error1/pkg_error1.dart'; | 
| -import 'package:pkg_error2/pkg_error2.dart'; | 
| -import 'package:pkg_noerror/pkg_noerror.dart'; | 
| -import 'error.dart'; | 
| +import 'package:pkg_error1/pkg_error1.dart' as pkg1; | 
| +import 'package:pkg_error2/pkg_error2.dart' as pkg2; | 
| +import 'package:pkg_noerror/pkg_noerror.dart' as pkg3; | 
| +import 'error.dart' as error; | 
| + | 
| +main() { | 
| +  pkg1.m(null); | 
| +  pkg2.m(null); | 
| +  pkg3.m(null); | 
| +  error.m(null); | 
| +} | 
| """, | 
|  | 
| 'error.dart': ERROR_CODE, | 
|  | 
| 'pkg/pkg_error1/pkg_error1.dart': """ | 
| -import 'package:pkg_error2/pkg_error2.dart'; | 
| -import 'package:pkg_noerror/pkg_noerror.dart'; | 
| -$ERROR_CODE""", | 
| +import 'package:pkg_error2/pkg_error2.dart' as pkg2; | 
| +import 'package:pkg_noerror/pkg_noerror.dart' as pkg3; | 
| +$ERROR_CODE | 
| + | 
| +main() { | 
| +  m(null); | 
| +  pkg2.m(null); | 
| +  pkg3.m(null); | 
| +} | 
| +""", | 
|  | 
| 'pkg/pkg_error2/pkg_error2.dart': """ | 
| -import 'package:pkg_error1/pkg_error1.dart'; | 
| -import 'package:pkg_noerror/pkg_noerror.dart'; | 
| -$ERROR_CODE""", | 
| +import 'package:pkg_error1/pkg_error1.dart' as pkg1; | 
| +import 'package:pkg_noerror/pkg_noerror.dart' as pkg3; | 
| +$ERROR_CODE | 
| + | 
| +main() { | 
| +  pkg1.m(null); | 
| +  m(null); | 
| +  pkg3.m(null); | 
| +} | 
| +""", | 
|  | 
| 'pkg/pkg_noerror/pkg_noerror.dart': """ | 
| -import 'package:pkg_error1/pkg_error1.dart'; | 
| -import 'package:pkg_error2/pkg_error2.dart'; | 
| +import 'package:pkg_error1/pkg_error1.dart' as pkg1; | 
| +import 'package:pkg_error2/pkg_error2.dart' as pkg2; | 
| +m(o) {} | 
| + | 
| +main() { | 
| +  pkg1.m(null); | 
| +  m(null); | 
| +  pkg2.m(null); | 
| +} | 
| """}; | 
|  | 
| Future test(Uri entryPoint, | 
| -            {bool showPackageWarnings: false, | 
| +            {List<String> showPackageWarnings: null, | 
| int warnings: 0, | 
| int hints: 0, | 
| int infos: 0}) async { | 
| -  var options = [Flags.analyzeOnly, Flags.analyzeAll]; | 
| -  if (showPackageWarnings) { | 
| -    options.add(Flags.showPackageWarnings); | 
| +  var options = [Flags.analyzeOnly]; | 
| +  if (showPackageWarnings != null) { | 
| +    if (showPackageWarnings.isEmpty) { | 
| +      options.add(Flags.showPackageWarnings); | 
| +    } else { | 
| +      options.add( | 
| +          '${Flags.showPackageWarnings}=${showPackageWarnings.join(',')}'); | 
| +    } | 
| } | 
| var collector = new DiagnosticCollector(); | 
| +  print('=================================================================='); | 
| +  print('test: $entryPoint showPackageWarnings=$showPackageWarnings'); | 
| +  print('------------------------------------------------------------------'); | 
| await runCompiler( | 
| entryPoint: entryPoint, | 
| memorySourceFiles: SOURCE, | 
| options: options, | 
| packageRoot: Uri.parse('memory:pkg/'), | 
| diagnosticHandler: collector); | 
| -  print('=================================================================='); | 
| -  print('test: $entryPoint showPackageWarnings=$showPackageWarnings'); | 
| Expect.equals(0, collector.errors.length, | 
| 'Unexpected errors: ${collector.errors}'); | 
| Expect.equals(warnings, collector.warnings.length, | 
| @@ -72,7 +106,6 @@ Future test(Uri entryPoint, | 
| Expect.equals(infos, collector.infos.length, | 
| 'Unexpected infos: ${collector.infos}'); | 
| checkUriSchemes(collector.infos); | 
| -  print('=================================================================='); | 
| } | 
|  | 
| void checkUriSchemes(Iterable<CollectedMessage> messages) { | 
| @@ -88,32 +121,52 @@ void main() { | 
| asyncTest(() async { | 
| await test( | 
| Uri.parse('memory:main.dart'), | 
| -        showPackageWarnings: true, | 
| +        showPackageWarnings: [], | 
| +        // From error.dart, package:pkg_error1 and package:pkg_error2: | 
| +        warnings: 3, hints: 3, infos: 3); | 
| +    await test( | 
| +        Uri.parse('memory:main.dart'), | 
| +        showPackageWarnings: ['pkg_error1'], | 
| +        // From error.dart and package:pkg_error1: | 
| +        warnings: 2, hints: 2 + 1 /* from summary */, infos: 2); | 
| +    await test( | 
| +        Uri.parse('memory:main.dart'), | 
| +        showPackageWarnings: ['pkg_error1', 'pkg_error2'], | 
| // From error.dart, package:pkg_error1 and package:pkg_error2: | 
| warnings: 3, hints: 3, infos: 3); | 
| await test( | 
| Uri.parse('memory:main.dart'), | 
| -        showPackageWarnings: false, | 
| +        showPackageWarnings: [], | 
| +        // From error.dart, package:pkg_error1 and package:pkg_error2: | 
| +        warnings: 3, hints: 3, infos: 3); | 
| +    await test( | 
| +        Uri.parse('memory:main.dart'), | 
| +        showPackageWarnings: null, | 
| // From error.dart only: | 
| warnings: 1, hints: 1 + 2 /* from summary */, infos: 1); | 
| await test( | 
| Uri.parse('package:pkg_error1/pkg_error1.dart'), | 
| -        showPackageWarnings: true, | 
| +        showPackageWarnings: [], | 
| // From package:pkg_error1 and package:pkg_error2: | 
| warnings: 2, hints: 2, infos: 2); | 
| await test( | 
| Uri.parse('package:pkg_error1/pkg_error1.dart'), | 
| -        showPackageWarnings: false, | 
| +        showPackageWarnings: null, | 
| // From package:pkg_error1/pkg_error1.dart only: | 
| warnings: 1, hints: 1 + 1 /* from summary */, infos: 1); | 
| await test( | 
| Uri.parse('package:pkg_noerror/pkg_noerror.dart'), | 
| -        showPackageWarnings: true, | 
| +        showPackageWarnings: [], | 
| // From package:pkg_error1 and package:pkg_error2: | 
| warnings: 2, hints: 2, infos: 2); | 
| await test( | 
| Uri.parse('package:pkg_noerror/pkg_noerror.dart'), | 
| -        showPackageWarnings: false, | 
| +        showPackageWarnings: ['pkg_error1'], | 
| +        // From package:pkg_error1: | 
| +        warnings: 1, hints: 1 + 1 /* from summary */, infos: 1); | 
| +    await test( | 
| +        Uri.parse('package:pkg_noerror/pkg_noerror.dart'), | 
| +        showPackageWarnings: null, | 
| hints: 2 /* from summary */); | 
| }); | 
| } | 
|  |