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 part of dart2js; | 5 part of dart2js; |
6 | 6 |
7 class TypeCheckerTask extends CompilerTask { | 7 class TypeCheckerTask extends CompilerTask { |
8 TypeCheckerTask(Compiler compiler) : super(compiler); | 8 TypeCheckerTask(Compiler compiler) : super(compiler); |
9 String get name => "Type checker"; | 9 String get name => "Type checker"; |
10 | 10 |
11 void check(TreeElements elements) { | 11 void check(AstElement element) { |
12 AstElement element = elements.analyzedElement; | 12 if (element.isClass) return; |
13 if (element.isTypedef) return; | 13 if (element.isTypedef) return; |
14 | 14 ResolvedAst resolvedAst = element.resolvedAst; |
15 compiler.withCurrentElement(element, () { | 15 compiler.withCurrentElement(element, () { |
16 measure(() { | 16 measure(() { |
17 Node tree = element.node; | 17 TypeCheckerVisitor visitor = new TypeCheckerVisitor( |
18 TypeCheckerVisitor visitor = | 18 compiler, resolvedAst.elements, compiler.types); |
19 new TypeCheckerVisitor(compiler, elements, compiler.types); | |
20 if (element.isField) { | 19 if (element.isField) { |
21 visitor.analyzingInitializer = true; | 20 visitor.analyzingInitializer = true; |
22 } | 21 } |
23 tree.accept(visitor); | 22 resolvedAst.node.accept(visitor); |
24 }); | 23 }); |
25 }); | 24 }); |
26 } | 25 } |
27 } | 26 } |
28 | 27 |
29 /** | 28 /** |
30 * Class used to report different warnings for differrent kinds of members. | 29 * Class used to report different warnings for differrent kinds of members. |
31 */ | 30 */ |
32 class MemberKind { | 31 class MemberKind { |
33 static const MemberKind METHOD = const MemberKind("method"); | 32 static const MemberKind METHOD = const MemberKind("method"); |
(...skipping 1829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1863 | 1862 |
1864 visitTypedef(Typedef node) { | 1863 visitTypedef(Typedef node) { |
1865 // Do not typecheck [Typedef] nodes. | 1864 // Do not typecheck [Typedef] nodes. |
1866 } | 1865 } |
1867 | 1866 |
1868 visitNode(Node node) { | 1867 visitNode(Node node) { |
1869 compiler.internalError(node, | 1868 compiler.internalError(node, |
1870 'Unexpected node ${node.getObjectDescription()} in the type checker.'); | 1869 'Unexpected node ${node.getObjectDescription()} in the type checker.'); |
1871 } | 1870 } |
1872 } | 1871 } |
OLD | NEW |