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 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:collection'; | 6 import 'dart:collection'; |
7 | 7 |
8 import 'package:async_helper/async_helper.dart'; | 8 import 'package:async_helper/async_helper.dart'; |
9 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
10 import 'package:compiler/src/constants/expressions.dart'; | 10 import 'package:compiler/src/constants/expressions.dart'; |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 }), | 142 }), |
143 ]); | 143 ]); |
144 } | 144 } |
145 | 145 |
146 Future testTypeVariables() { | 146 Future testTypeVariables() { |
147 matchResolvedTypes(visitor, text, name, expectedElements) { | 147 matchResolvedTypes(visitor, text, name, expectedElements) { |
148 VariableDefinitions definition = parseStatement(text); | 148 VariableDefinitions definition = parseStatement(text); |
149 visitor.visit(definition.type); | 149 visitor.visit(definition.type); |
150 ResolutionInterfaceType type = | 150 ResolutionInterfaceType type = |
151 visitor.registry.mapping.getType(definition.type); | 151 visitor.registry.mapping.getType(definition.type); |
| 152 NominalTypeAnnotation annotation = definition.type; |
152 Expect.equals( | 153 Expect.equals( |
153 definition.type.typeArguments.slowLength(), type.typeArguments.length); | 154 annotation.typeArguments.slowLength(), type.typeArguments.length); |
154 int index = 0; | 155 int index = 0; |
155 for (ResolutionDartType argument in type.typeArguments) { | 156 for (ResolutionDartType argument in type.typeArguments) { |
156 Expect.equals(true, index < expectedElements.length); | 157 Expect.equals(true, index < expectedElements.length); |
157 Expect.equals(expectedElements[index], argument.element); | 158 Expect.equals(expectedElements[index], argument.element); |
158 index++; | 159 index++; |
159 } | 160 } |
160 Expect.equals(index, expectedElements.length); | 161 Expect.equals(index, expectedElements.length); |
161 } | 162 } |
162 | 163 |
163 return Future.wait([ | 164 return Future.wait([ |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
693 }); | 694 }); |
694 } | 695 } |
695 | 696 |
696 Future testTopLevelFields() { | 697 Future testTopLevelFields() { |
697 return MockCompiler.create((MockCompiler compiler) { | 698 return MockCompiler.create((MockCompiler compiler) { |
698 compiler.parseScript("int a;"); | 699 compiler.parseScript("int a;"); |
699 VariableElementX element = compiler.mainApp.find("a"); | 700 VariableElementX element = compiler.mainApp.find("a"); |
700 Expect.equals(ElementKind.FIELD, element.kind); | 701 Expect.equals(ElementKind.FIELD, element.kind); |
701 VariableDefinitions node = | 702 VariableDefinitions node = |
702 element.variables.parseNode(element, compiler.parsingContext); | 703 element.variables.parseNode(element, compiler.parsingContext); |
703 Identifier typeName = node.type.typeName; | 704 NominalTypeAnnotation annotation = node.type; |
| 705 Identifier typeName = annotation.typeName; |
704 Expect.equals(typeName.source, 'int'); | 706 Expect.equals(typeName.source, 'int'); |
705 | 707 |
706 compiler.parseScript("var b, c;"); | 708 compiler.parseScript("var b, c;"); |
707 VariableElementX bElement = compiler.mainApp.find("b"); | 709 VariableElementX bElement = compiler.mainApp.find("b"); |
708 VariableElementX cElement = compiler.mainApp.find("c"); | 710 VariableElementX cElement = compiler.mainApp.find("c"); |
709 Expect.equals(ElementKind.FIELD, bElement.kind); | 711 Expect.equals(ElementKind.FIELD, bElement.kind); |
710 Expect.equals(ElementKind.FIELD, cElement.kind); | 712 Expect.equals(ElementKind.FIELD, cElement.kind); |
711 Expect.isTrue(bElement != cElement); | 713 Expect.isTrue(bElement != cElement); |
712 | 714 |
713 VariableDefinitions bNode = | 715 VariableDefinitions bNode = |
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1537 functionName: 'm'); | 1539 functionName: 'm'); |
1538 check( | 1540 check( |
1539 ''' | 1541 ''' |
1540 class A { | 1542 class A { |
1541 m() => () => await - 3; | 1543 m() => () => await - 3; |
1542 } | 1544 } |
1543 main() => new A().m(); | 1545 main() => new A().m(); |
1544 ''', | 1546 ''', |
1545 className: 'A'); | 1547 className: 'A'); |
1546 } | 1548 } |
OLD | NEW |