| Index: pkg/analyzer/test/src/dart/sdk/patch_test.dart
|
| diff --git a/pkg/analyzer/test/src/dart/sdk/patch_test.dart b/pkg/analyzer/test/src/dart/sdk/patch_test.dart
|
| index 25fc34a5cd1fa24417467d90e9244c01b5e368a9..6c51322b0058f3b564cba7ab5c34a1847149c76b 100644
|
| --- a/pkg/analyzer/test/src/dart/sdk/patch_test.dart
|
| +++ b/pkg/analyzer/test/src/dart/sdk/patch_test.dart
|
| @@ -33,6 +33,32 @@ class SdkPatcherTest {
|
| sdkFolder = provider.getFolder(_p('/sdk'));
|
| }
|
|
|
| + test_directive_fail_export() {
|
| + expect(() {
|
| + _doTopLevelPatching(
|
| + r'''
|
| +import 'a.dart';
|
| +''',
|
| + r'''
|
| +export 'c.dart';
|
| +''');
|
| + }, throwsArgumentError);
|
| + }
|
| +
|
| + test_directive_import() {
|
| + CompilationUnit unit = _doTopLevelPatching(
|
| + r'''
|
| +import 'a.dart';
|
| +part 'b.dart';
|
| +int bar() => 0;
|
| +''',
|
| + r'''
|
| +import 'c.dart';
|
| +''');
|
| + _assertUnitCode(unit,
|
| + "import 'a.dart'; part 'b.dart'; import 'c.dart'; int bar() => 0;");
|
| + }
|
| +
|
| test_fail_noSuchLibrary() {
|
| expect(() {
|
| _setSdkLibraries('const LIBRARIES = const {};');
|
| @@ -76,19 +102,19 @@ void set _foo3(int val) {}
|
| 'int get _foo2 => 1; void set _foo3(int val) {}');
|
| }
|
|
|
| - test_topLevel_fail_append_notPrivate() {
|
| + test_topLevel_fail_topLevelVariable() {
|
| expect(() {
|
| _doTopLevelPatching(
|
| r'''
|
| -int foo() => 1;
|
| +int foo() => 0;
|
| ''',
|
| r'''
|
| -int bar() => 2;
|
| +int _bar;
|
| ''');
|
| }, throwsArgumentError);
|
| }
|
|
|
| - test_topLevel_fail_noExternalKeyword() {
|
| + test_topLevel_function_fail_noExternalKeyword() {
|
| expect(() {
|
| _doTopLevelPatching(
|
| r'''
|
| @@ -101,6 +127,54 @@ int foo() => 1;
|
| }, throwsArgumentError);
|
| }
|
|
|
| + test_topLevel_function_fail_notPrivate() {
|
| + expect(() {
|
| + _doTopLevelPatching(
|
| + r'''
|
| +int foo() => 1;
|
| +''',
|
| + r'''
|
| +int bar() => 2;
|
| +''');
|
| + }, throwsArgumentError);
|
| + }
|
| +
|
| + test_topLevel_functionTypeAlias_append() {
|
| + CompilationUnit unit = _doTopLevelPatching(
|
| + r'''
|
| +int foo() => 0;
|
| +''',
|
| + r'''
|
| +typedef int _bar();
|
| +''');
|
| + _assertUnitCode(unit, 'int foo() => 0; typedef int _bar();');
|
| + }
|
| +
|
| + test_topLevel_functionTypeAlias_fail_hasAnnotation() {
|
| + expect(() {
|
| + _doTopLevelPatching(
|
| + r'''
|
| +int foo() => 0;
|
| +''',
|
| + r'''
|
| +@patch
|
| +typedef int _bar();
|
| +''');
|
| + }, throwsArgumentError);
|
| + }
|
| +
|
| + test_topLevel_functionTypeAlias_fail_notPrivate() {
|
| + expect(() {
|
| + _doTopLevelPatching(
|
| + r'''
|
| +int foo() => 0;
|
| +''',
|
| + r'''
|
| +typedef int bar();
|
| +''');
|
| + }, throwsArgumentError);
|
| + }
|
| +
|
| test_topLevel_patch_function() {
|
| CompilationUnit unit = _doTopLevelPatching(
|
| r'''
|
| @@ -114,6 +188,18 @@ int foo() => 1;
|
| _assertUnitCode(unit, 'int foo() => 1; int bar() => 2;');
|
| }
|
|
|
| + test_topLevel_patch_function_blockBody() {
|
| + CompilationUnit unit = _doTopLevelPatching(
|
| + r'''
|
| +external int foo();
|
| +''',
|
| + r'''
|
| +@patch
|
| +int foo() {int v = 1; return v + 2;}
|
| +''');
|
| + _assertUnitCode(unit, 'int foo() {int v = 1; return v + 2;}');
|
| + }
|
| +
|
| test_topLevel_patch_getter() {
|
| CompilationUnit unit = _doTopLevelPatching(
|
| r'''
|
|
|