| 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 |