| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import "package:expect/expect.dart"; | |
| // Dart test verifying that the parser does not confuse parameterized types with | |
| // boolean expressions, since both contain '<'. | |
| class GenericSyntaxTest<B, C, D, E, F> { | |
| GenericSyntaxTest() {} | |
| void foo(x1, x2, x3, x4, x5) { | |
| Expect.equals(true, x1); | |
| Expect.equals(3, x2); | |
| Expect.equals(4, x3); | |
| Expect.equals(5, x4); | |
| Expect.equals(false, x5); | |
| } | |
| void bar(x) { | |
| Expect.equals(null, x(null)); | |
| } | |
| test() { | |
| var a = 1; | |
| var b = 2; | |
| var c = 3; | |
| var d = 4; | |
| var e = 5; | |
| var f = 6; | |
| var g = 7; | |
| var h = null; | |
| bar((A<B, C, D, E, F>? g) { | |
| return h; | |
| }); // 'A<B' starts a generic type. | |
| foo(a < b, c, d, e, f > g); // 'a<b' is a boolean function argument. | |
| } | |
| static testMain() { | |
| new GenericSyntaxTest().test(); | |
| } | |
| } | |
| abstract class A<B, C, D, E, F> {} | |
| main() { | |
| GenericSyntaxTest.testMain(); | |
| } |