| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library analyzer.src.generated.resolver; | 5 library analyzer.src.generated.resolver; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:analyzer/dart/element/element.dart'; | 9 import 'package:analyzer/dart/element/element.dart'; |
| 10 import 'package:analyzer/dart/element/type.dart'; | 10 import 'package:analyzer/dart/element/type.dart'; |
| (...skipping 8660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8671 | 8671 |
| 8672 @override | 8672 @override |
| 8673 Object visitDefaultFormalParameter(DefaultFormalParameter node) { | 8673 Object visitDefaultFormalParameter(DefaultFormalParameter node) { |
| 8674 InferenceContext.setType(node.defaultValue, node.parameter.element?.type); | 8674 InferenceContext.setType(node.defaultValue, node.parameter.element?.type); |
| 8675 super.visitDefaultFormalParameter(node); | 8675 super.visitDefaultFormalParameter(node); |
| 8676 ParameterElement element = node.element; | 8676 ParameterElement element = node.element; |
| 8677 if (element.initializer != null && node.defaultValue != null) { | 8677 if (element.initializer != null && node.defaultValue != null) { |
| 8678 (element.initializer as FunctionElementImpl).returnType = | 8678 (element.initializer as FunctionElementImpl).returnType = |
| 8679 node.defaultValue.staticType; | 8679 node.defaultValue.staticType; |
| 8680 } | 8680 } |
| 8681 FormalParameterList parent = node.parent; | 8681 // Clone the ASTs for default formal parameters, so that we can use them |
| 8682 AstNode grandparent = parent.parent; | 8682 // during constant evaluation. |
| 8683 if (grandparent is ConstructorDeclaration && | 8683 (element as ConstVariableElement).constantInitializer = |
| 8684 grandparent.constKeyword != null) { | 8684 new ConstantAstCloner().cloneNode(node.defaultValue); |
| 8685 // For const constructors, we need to clone the ASTs for default formal | |
| 8686 // parameters, so that we can use them during constant evaluation. | |
| 8687 ParameterElement element = node.element; | |
| 8688 (element as ConstVariableElement).constantInitializer = | |
| 8689 new ConstantAstCloner().cloneNode(node.defaultValue); | |
| 8690 } | |
| 8691 return null; | 8685 return null; |
| 8692 } | 8686 } |
| 8693 | 8687 |
| 8694 @override | 8688 @override |
| 8695 Object visitDoStatement(DoStatement node) { | 8689 Object visitDoStatement(DoStatement node) { |
| 8696 _overrideManager.enterScope(); | 8690 _overrideManager.enterScope(); |
| 8697 try { | 8691 try { |
| 8698 super.visitDoStatement(node); | 8692 super.visitDoStatement(node); |
| 8699 } finally { | 8693 } finally { |
| 8700 _overrideManager.exitScope(); | 8694 _overrideManager.exitScope(); |
| (...skipping 4658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13359 nonFields.add(node); | 13353 nonFields.add(node); |
| 13360 return null; | 13354 return null; |
| 13361 } | 13355 } |
| 13362 | 13356 |
| 13363 @override | 13357 @override |
| 13364 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this); | 13358 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this); |
| 13365 | 13359 |
| 13366 @override | 13360 @override |
| 13367 Object visitWithClause(WithClause node) => null; | 13361 Object visitWithClause(WithClause node) => null; |
| 13368 } | 13362 } |
| OLD | NEW |