| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 serialization.summarize_ast; | 5 library serialization.summarize_ast; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
| 8 import 'package:analyzer/dart/ast/token.dart'; | 8 import 'package:analyzer/dart/ast/token.dart'; |
| 9 import 'package:analyzer/dart/ast/visitor.dart'; | 9 import 'package:analyzer/dart/ast/visitor.dart'; |
| 10 import 'package:analyzer/dart/element/type.dart' show DartType; | 10 import 'package:analyzer/dart/element/type.dart' show DartType; |
| (...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 serializeTypeParameters(typeParameters, typeParameterScope); | 636 serializeTypeParameters(typeParameters, typeParameterScope); |
| 637 if (!isTopLevel) { | 637 if (!isTopLevel) { |
| 638 b.isStatic = isDeclaredStatic; | 638 b.isStatic = isDeclaredStatic; |
| 639 } | 639 } |
| 640 b.returnType = serializeTypeName(returnType); | 640 b.returnType = serializeTypeName(returnType); |
| 641 bool isSemanticallyStatic = isTopLevel || isDeclaredStatic; | 641 bool isSemanticallyStatic = isTopLevel || isDeclaredStatic; |
| 642 if (formalParameters != null) { | 642 if (formalParameters != null) { |
| 643 b.parameters = formalParameters.parameters | 643 b.parameters = formalParameters.parameters |
| 644 .map((FormalParameter p) => p.accept(this)) | 644 .map((FormalParameter p) => p.accept(this)) |
| 645 .toList(); | 645 .toList(); |
| 646 if (!isSemanticallyStatic) { | 646 |
| 647 for (int i = 0; i < formalParameters.parameters.length; i++) { | 647 for (int i = 0; i < formalParameters.parameters.length; i++) { |
| 648 if (!b.parameters[i].isFunctionTyped && | 648 UnlinkedParamBuilder p = b.parameters[i]; |
| 649 b.parameters[i].type == null) { | 649 if (!p.isFunctionTyped && p.type == null) { |
| 650 b.parameters[i].inferredTypeSlot = assignSlot(); | 650 // Strong mode infers parameters in two cases: |
| 651 // - instance members (i.e. not semantically static), |
| 652 // - parameters with default values, except initializing formals |
| 653 // (the type comes from the field). |
| 654 if (!isSemanticallyStatic || |
| 655 p.initializer != null && !p.isInitializingFormal) { |
| 656 p.inferredTypeSlot = assignSlot(); |
| 651 } | 657 } |
| 652 } | 658 } |
| 653 } | 659 } |
| 654 } | 660 } |
| 655 b.documentationComment = serializeDocumentation(documentationComment); | 661 b.documentationComment = serializeDocumentation(documentationComment); |
| 656 b.annotations = serializeAnnotations(annotations); | 662 b.annotations = serializeAnnotations(annotations); |
| 657 b.codeRange = serializeCodeRange(node); | 663 b.codeRange = serializeCodeRange(node); |
| 658 if (returnType == null && !isSemanticallyStatic) { | 664 if (returnType == null && !isSemanticallyStatic) { |
| 659 b.inferredReturnTypeSlot = assignSlot(); | 665 b.inferredReturnTypeSlot = assignSlot(); |
| 660 } | 666 } |
| (...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1376 /** | 1382 /** |
| 1377 * A [_TypeParameterScope] is a [_Scope] which defines [_ScopedTypeParameter]s. | 1383 * A [_TypeParameterScope] is a [_Scope] which defines [_ScopedTypeParameter]s. |
| 1378 */ | 1384 */ |
| 1379 class _TypeParameterScope extends _Scope { | 1385 class _TypeParameterScope extends _Scope { |
| 1380 /** | 1386 /** |
| 1381 * Get the number of [_ScopedTypeParameter]s defined in this | 1387 * Get the number of [_ScopedTypeParameter]s defined in this |
| 1382 * [_TypeParameterScope]. | 1388 * [_TypeParameterScope]. |
| 1383 */ | 1389 */ |
| 1384 int get length => _definedNames.length; | 1390 int get length => _definedNames.length; |
| 1385 } | 1391 } |
| OLD | NEW |