| Index: pkg/analyzer/lib/src/task/strong/ast_properties.dart
|
| diff --git a/pkg/analyzer/lib/src/task/strong/ast_properties.dart b/pkg/analyzer/lib/src/task/strong/ast_properties.dart
|
| index 52f27f1cef073a1a4c08ca0044870dd352dad34a..0f93adafca085809e4b0c8e0414bb1eabc547188 100644
|
| --- a/pkg/analyzer/lib/src/task/strong/ast_properties.dart
|
| +++ b/pkg/analyzer/lib/src/task/strong/ast_properties.dart
|
| @@ -10,6 +10,7 @@
|
| import 'package:analyzer/analyzer.dart';
|
| import 'package:analyzer/dart/element/type.dart';
|
|
|
| +const String _implicitAssignmentCast = '_implicitAssignmentCast';
|
| const String _implicitCast = '_implicitCast';
|
| const String _hasImplicitCasts = '_hasImplicitCasts';
|
| const String _isDynamicInvoke = '_isDynamicInvoke';
|
| @@ -37,6 +38,17 @@ void setImplicitCast(Expression node, DartType type) {
|
| node.setProperty(_implicitCast, type);
|
| }
|
|
|
| +/// If this op-assign has an implicit cast on the assignment, returns the type
|
| +/// it is coerced to, otherwise returns null.
|
| +DartType getImplicitAssignmentCast(Expression node) {
|
| + return node.getProperty/*<DartType>*/(_implicitAssignmentCast);
|
| +}
|
| +
|
| +/// Sets the result of [getImplicitAssignmentCast] for this node.
|
| +void setImplicitAssignmentCast(Expression node, DartType type) {
|
| + node.setProperty(_implicitAssignmentCast, type);
|
| +}
|
| +
|
| /// True if this node is a dynamic operation that requires dispatch and/or
|
| /// checking at runtime.
|
| bool isDynamicInvoke(Expression node) {
|
|
|