| OLD | NEW |
| 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 import "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
| 6 import "../../../sdk/lib/_internal/compiler/implementation/elements/elements.dar
t"; | 6 import "../../../sdk/lib/_internal/compiler/implementation/elements/elements.dar
t"; |
| 7 import "mock_compiler.dart"; | 7 import "mock_compiler.dart"; |
| 8 import "parser_helper.dart"; | 8 import "parser_helper.dart"; |
| 9 | 9 |
| 10 main() { | 10 String TEST_0 = ''' |
| 11 MockCompiler compiler = new MockCompiler(); | |
| 12 | |
| 13 String code = ''' | |
| 14 class Foo { | 11 class Foo { |
| 12 Foo(); |
| 13 Foo.named(); |
| 14 factory Foo._internal() => null; |
| 15 operator+(other) => null; | 15 operator+(other) => null; |
| 16 } | 16 } |
| 17 '''; | 17 '''; |
| 18 | 18 |
| 19 ClassElement foo = parseUnit(code, compiler, compiler.mainApp).head; | 19 String TEST_1 = ''' |
| 20 foo.parseNode(compiler); | 20 class Bar { |
| 21 for (Element e in foo.localMembers) { | 21 const Bar(); |
| 22 Expect.equals(code.indexOf(e.name.slowToString()), e.position().charOffset); | 22 const Bar.named(); |
| 23 Map<int, List<int>> baz() => null; |
| 24 } |
| 25 '''; |
| 26 |
| 27 main() { |
| 28 MockCompiler compiler = new MockCompiler(); |
| 29 testClass(TEST_0, compiler); |
| 30 testClass(TEST_1, compiler); |
| 31 } |
| 32 |
| 33 testClass(String code, MockCompiler compiler) { |
| 34 int skip = code.indexOf('{'); |
| 35 ClassElement cls = parseUnit(code, compiler, compiler.mainApp).head; |
| 36 cls.parseNode(compiler); |
| 37 for (Element e in cls.localMembers) { |
| 38 String name = e.name.slowToString(); |
| 39 if (e.isConstructor()) name = name.replaceFirst(r'$', '.'); |
| 40 Expect.equals(code.indexOf(name, skip), e.position().charOffset); |
| 23 } | 41 } |
| 24 } | 42 } |
| OLD | NEW |