| Index: tests/language/function_type/function_type67_test.dart | 
| diff --git a/tests/language/function_type/function_type67_test.dart b/tests/language/function_type/function_type67_test.dart | 
| index a902aa542fca9775c1da8e23531a84242851e57c..36fb3714f1f168e4b944eb64c0df06f83d600e11 100644 | 
| --- a/tests/language/function_type/function_type67_test.dart | 
| +++ b/tests/language/function_type/function_type67_test.dart | 
| @@ -19,64 +19,45 @@ import 'package:expect/expect.dart'; | 
| @AssumeDynamic() | 
| confuse(f) => f; | 
|  | 
| -final bool inCheckedMode = (() { | 
| -  bool result = false; | 
| -  assert(result = true); | 
| -  return result; | 
| -})(); | 
| - | 
| -typedef F0<T> | 
| -    = Function Function(Function x); | 
| -typedef F1<T> | 
| -    = List<Function> Function(); | 
| -typedef F2<T> | 
| -    = List<T> Function(int y, {core.List<core.int> x}); | 
| -typedef F3<T> | 
| -    = void Function(int x0, {List<Function> x}); | 
| -typedef F4<T> | 
| -    = int Function(int x) Function<B extends core.int>(int x); | 
| -typedef F5<T> | 
| -    = int Function(int y, [List<Function> x]) Function<B extends core.int>( | 
| -        int x); | 
| -typedef F6<T> | 
| -    = int Function(int x2, [List<T> x3]) Function<B extends core.int>(int x); | 
| -typedef F7<T> | 
| -    = Function Function({Function x}) Function<B extends core.int>(int x); | 
| -typedef F8<T> | 
| -    = Function Function(List<T> x) Function<B extends core.int>(int x); | 
| -typedef F9<T> | 
| -    = List<Function> Function(int x1, | 
| -        [Function x]) Function<B extends core.int>(int x); | 
| -typedef F10<T> | 
| -    = List<Function> Function( | 
| -        [core.List<core.int> x1]) Function<B extends core.int>(int x); | 
| -typedef F11<T> | 
| -    = core.List<core.int> Function(int x, | 
| -        [int x1]) Function<B extends core.int>(int x); | 
| -typedef F12<T> | 
| -    = core.List<core.int> Function(int y, | 
| -        {List<Function> x}) Function<B extends core.int>(int x); | 
| -typedef F13<T> | 
| -    = List<T> Function([int x]) Function<B extends core.int>(int x); | 
| -typedef F14<T> | 
| -    = List<T> Function(List<Function> x1) Function<B extends core.int>(int x); | 
| -typedef F15<T> | 
| -    = List<T> Function(int x, [List<T> x1]) Function<B extends core.int>(int x); | 
| -typedef F16<T> | 
| -    = Function(int x1, {Function x}) Function<B extends core.int>(int x); | 
| -typedef F17<T> | 
| -    = Function([List<T> x]) Function<B extends core.int>(int x); | 
| -typedef F18<T> | 
| -    = void Function(int y, [Function x]) Function<B extends core.int>(int x); | 
| -typedef F19<T> | 
| -    = void Function(int x2, | 
| -        [core.List<core.int> x3]) Function<B extends core.int>(int x); | 
| -typedef F20<T> | 
| -    = Function Function<A>(int x) Function<B extends core.int>(int x); | 
| -typedef F21<T> | 
| -    = List<T> Function<A>(Function x) Function<B extends core.int>(int x); | 
| -typedef F22<T> | 
| -    = List<A> Function<A>(List<Function> x) Function<B extends core.int>(int x); | 
| +typedef F0<T> = Function Function(Function x); | 
| +typedef F1<T> = List<Function> Function(); | 
| +typedef F2<T> = List<T> Function(int y, {core.List<core.int> x}); | 
| +typedef F3<T> = void Function(int x0, {List<Function> x}); | 
| +typedef F4<T> = int Function(int x) Function<B extends core.int>(int x); | 
| +typedef F5<T> = int Function(int y, [List<Function> x]) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F6<T> = int Function(int x2, [List<T> x3]) Function<B extends core.int>( | 
| +    int x); | 
| +typedef F7<T> = Function Function({Function x}) Function<B extends core.int>( | 
| +    int x); | 
| +typedef F8<T> = Function Function(List<T> x) Function<B extends core.int>( | 
| +    int x); | 
| +typedef F9<T> = List<Function> Function(int x1, [Function x]) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F10<T> = List<Function> Function([core.List<core.int> x1]) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F11<T> = core.List<core.int> Function(int x, [int x1]) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F12<T> = core.List<core.int> Function(int y, {List<Function> x}) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F13<T> = List<T> Function([int x]) Function<B extends core.int>(int x); | 
| +typedef F14<T> = List<T> Function(List<Function> x1) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F15<T> = List<T> Function(int x, [List<T> x1]) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F16<T> = Function(int x1, {Function x}) Function<B extends core.int>( | 
| +    int x); | 
| +typedef F17<T> = Function([List<T> x]) Function<B extends core.int>(int x); | 
| +typedef F18<T> = void Function(int y, [Function x]) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F19<T> = void Function(int x2, [core.List<core.int> x3]) | 
| +    Function<B extends core.int>(int x); | 
| +typedef F20<T> = Function Function<A>(int x) Function<B extends core.int>( | 
| +    int x); | 
| +typedef F21<T> = List<T> Function<A>(Function x) Function<B extends core.int>( | 
| +    int x); | 
| +typedef F22<T> = List<A> Function<A>(List<Function> x) | 
| +    Function<B extends core.int>(int x); | 
|  | 
| Function f0(Function x) => null; | 
| List<Function> f1() => null; | 
| @@ -128,12 +109,12 @@ class U67<T> { | 
| Function Function(List<T> x) Function<B extends core.int>(int x) x8; | 
| List<Function> Function(int x1, [Function x]) Function<B extends core.int>( | 
| int x) x9; | 
| -  List<Function> Function( | 
| -      [core.List<core.int> x1]) Function<B extends core.int>(int x) x10; | 
| +  List<Function> Function([core.List<core.int> x1]) | 
| +      Function<B extends core.int>(int x) x10; | 
| core.List<core.int> Function(int x, [int x1]) Function<B extends core.int>( | 
| int x) x11; | 
| -  core.List<core.int> Function(int y, | 
| -      {List<Function> x}) Function<B extends core.int>(int x) x12; | 
| +  core.List<core.int> Function(int y, {List<Function> x}) | 
| +      Function<B extends core.int>(int x) x12; | 
| List<T> Function([int x]) Function<B extends core.int>(int x) x13; | 
| List<T> Function(List<Function> x1) Function<B extends core.int>(int x) x14; | 
| List<T> Function(int x, [List<T> x1]) Function<B extends core.int>(int x) x15; | 
| @@ -285,7 +266,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m2 is F2<bool>); | 
| Expect.equals(tIsDynamic, confuse(m2) is F2<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x2 = (f2 as dynamic); | 
| }); | 
| @@ -372,8 +353,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m5 is F5); | 
| -    Expect.isTrue(m5 is int Function(int y, | 
| -        [List<Function> x]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m5 is int Function(int y, [List<Function> x]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m5) is F5); | 
| // In checked mode, verifies the type. | 
| x5 = m5; | 
| @@ -397,8 +378,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m6 is F6); | 
| -    Expect.isTrue(m6 is int Function(int x2, | 
| -        [List<T> x3]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m6 is int Function(int x2, [List<T> x3]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m6) is F6); | 
| // In checked mode, verifies the type. | 
| x6 = m6; | 
| @@ -413,7 +394,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m6 is F6<bool>); | 
| Expect.equals(tIsDynamic, confuse(m6) is F6<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x6 = (f6 as dynamic); | 
| }); | 
| @@ -452,8 +433,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m7 is F7); | 
| -    Expect.isTrue(m7 is Function Function( | 
| -        {Function x}) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m7 is Function Function({Function x}) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m7) is F7); | 
| // In checked mode, verifies the type. | 
| x7 = m7; | 
| @@ -493,7 +474,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m8 is F8<bool>); | 
| Expect.equals(tIsDynamic, confuse(m8) is F8<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x8 = (f8 as dynamic); | 
| }); | 
| @@ -531,8 +512,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m9 is F9); | 
| -    Expect.isTrue(m9 is List<Function> Function(int x1, | 
| -        [Function x]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m9 is List<Function> Function(int x1, [Function x]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m9) is F9); | 
| // In checked mode, verifies the type. | 
| x9 = m9; | 
| @@ -546,8 +527,8 @@ class U67<T> { | 
| Expect.isTrue(f10 is F10); | 
| Expect.isTrue(confuse(f10) is F10); | 
| // In checked mode, verifies the type. | 
| -    List<Function> Function( | 
| -        [core.List<core.int> x1]) Function<B extends core.int>(int x) l10; | 
| +    List<Function> Function([core.List<core.int> x1]) | 
| +        Function<B extends core.int>(int x) l10; | 
| // The static function f10 sets `T` to `int`. | 
| if (!tIsBool) { | 
| x10 = f10 as dynamic; | 
| @@ -557,8 +538,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m10 is F10); | 
| -    Expect.isTrue(m10 is List<Function> Function( | 
| -        [core.List<core.int> x1]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m10 is List<Function> Function([core.List<core.int> x1]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m10) is F10); | 
| // In checked mode, verifies the type. | 
| x10 = m10; | 
| @@ -583,8 +564,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m11 is F11); | 
| -    Expect.isTrue(m11 is core.List<core.int> Function(int x, | 
| -        [int x1]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m11 is core.List<core.int> Function(int x, [int x1]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m11) is F11); | 
| // In checked mode, verifies the type. | 
| x11 = m11; | 
| @@ -598,8 +579,8 @@ class U67<T> { | 
| Expect.isTrue(f12 is F12); | 
| Expect.isTrue(confuse(f12) is F12); | 
| // In checked mode, verifies the type. | 
| -    core.List<core.int> Function(int y, | 
| -        {List<Function> x}) Function<B extends core.int>(int x) l12; | 
| +    core.List<core.int> Function(int y, {List<Function> x}) | 
| +        Function<B extends core.int>(int x) l12; | 
| // The static function f12 sets `T` to `int`. | 
| if (!tIsBool) { | 
| x12 = f12 as dynamic; | 
| @@ -609,8 +590,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m12 is F12); | 
| -    Expect.isTrue(m12 is core.List<core.int> Function(int y, | 
| -        {List<Function> x}) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m12 is core.List<core.int> Function(int y, {List<Function> x}) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m12) is F12); | 
| // In checked mode, verifies the type. | 
| x12 = m12; | 
| @@ -650,7 +631,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m13 is F13<bool>); | 
| Expect.equals(tIsDynamic, confuse(m13) is F13<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x13 = (f13 as dynamic); | 
| }); | 
| @@ -687,8 +668,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m14 is F14); | 
| -    Expect.isTrue(m14 is List<T> Function( | 
| -        List<Function> x1) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m14 is List<T> Function(List<Function> x1) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m14) is F14); | 
| // In checked mode, verifies the type. | 
| x14 = m14; | 
| @@ -703,7 +684,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m14 is F14<bool>); | 
| Expect.equals(tIsDynamic, confuse(m14) is F14<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x14 = (f14 as dynamic); | 
| }); | 
| @@ -743,8 +724,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m15 is F15); | 
| -    Expect.isTrue(m15 is List<T> Function(int x, | 
| -        [List<T> x1]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m15 is List<T> Function(int x, [List<T> x1]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m15) is F15); | 
| // In checked mode, verifies the type. | 
| x15 = m15; | 
| @@ -759,7 +740,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m15 is F15<bool>); | 
| Expect.equals(tIsDynamic, confuse(m15) is F15<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x15 = (f15 as dynamic); | 
| }); | 
| @@ -798,8 +779,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m16 is F16); | 
| -    Expect.isTrue(m16 is Function(int x1, | 
| -        {Function x}) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m16 is Function(int x1, {Function x}) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m16) is F16); | 
| // In checked mode, verifies the type. | 
| x16 = m16; | 
| @@ -839,7 +820,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m17 is F17<bool>); | 
| Expect.equals(tIsDynamic, confuse(m17) is F17<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x17 = (f17 as dynamic); | 
| }); | 
| @@ -876,8 +857,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m18 is F18); | 
| -    Expect.isTrue(m18 is void Function(int y, | 
| -        [Function x]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m18 is void Function(int y, [Function x]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m18) is F18); | 
| // In checked mode, verifies the type. | 
| x18 = m18; | 
| @@ -891,8 +872,8 @@ class U67<T> { | 
| Expect.isTrue(f19 is F19); | 
| Expect.isTrue(confuse(f19) is F19); | 
| // In checked mode, verifies the type. | 
| -    void Function(int x2, | 
| -        [core.List<core.int> x3]) Function<B extends core.int>(int x) l19; | 
| +    void Function(int x2, [core.List<core.int> x3]) | 
| +        Function<B extends core.int>(int x) l19; | 
| // The static function f19 sets `T` to `int`. | 
| if (!tIsBool) { | 
| x19 = f19 as dynamic; | 
| @@ -902,8 +883,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m19 is F19); | 
| -    Expect.isTrue(m19 is void Function(int x2, | 
| -        [core.List<core.int> x3]) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m19 is void Function(int x2, [core.List<core.int> x3]) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m19) is F19); | 
| // In checked mode, verifies the type. | 
| x19 = m19; | 
| @@ -952,8 +933,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m21 is F21); | 
| -    Expect.isTrue(m21 is List<T> Function<A>( | 
| -        Function x) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m21 is List<T> Function<A>(Function x) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m21) is F21); | 
| // In checked mode, verifies the type. | 
| x21 = m21; | 
| @@ -968,7 +949,7 @@ class U67<T> { | 
| Expect.equals(tIsDynamic, m21 is F21<bool>); | 
| Expect.equals(tIsDynamic, confuse(m21) is F21<bool>); | 
| } else { | 
| -      if (inCheckedMode) { | 
| +      if (typeAssertionsEnabled) { | 
| Expect.throws(() { | 
| x21 = (f21 as dynamic); | 
| }); | 
| @@ -1007,8 +988,8 @@ class U67<T> { | 
| } | 
|  | 
| Expect.isTrue(m22 is F22); | 
| -    Expect.isTrue(m22 is List<A> Function<A>( | 
| -        List<Function> x) Function<B extends core.int>(int x)); | 
| +    Expect.isTrue(m22 is List<A> Function<A>(List<Function> x) | 
| +        Function<B extends core.int>(int x)); | 
| Expect.isTrue(confuse(m22) is F22); | 
| // In checked mode, verifies the type. | 
| x22 = m22; | 
|  |