Fix invalid cast

R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2626463003 .
This commit is contained in:
Brian Wilkerson 2017-01-09 16:56:59 -08:00
parent 7b68f5a2ee
commit 59b025adfb
2 changed files with 4 additions and 7 deletions

View file

@ -8,6 +8,7 @@ import 'dart:collection';
import 'package:analyzer/context/declared_variables.dart'; import 'package:analyzer/context/declared_variables.dart';
import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/standard_ast_factory.dart';
import 'package:analyzer/dart/ast/token.dart'; import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart'; import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/constant/value.dart'; import 'package:analyzer/dart/constant/value.dart';
@ -29,7 +30,6 @@ import 'package:analyzer/src/generated/type_system.dart'
import 'package:analyzer/src/generated/utilities_collection.dart'; import 'package:analyzer/src/generated/utilities_collection.dart';
import 'package:analyzer/src/generated/utilities_dart.dart' show ParameterKind; import 'package:analyzer/src/generated/utilities_dart.dart' show ParameterKind;
import 'package:analyzer/src/task/dart.dart'; import 'package:analyzer/src/task/dart.dart';
import 'package:analyzer/dart/ast/standard_ast_factory.dart';
/** /**
* Helper class encapsulating the methods for evaluating constants and * Helper class encapsulating the methods for evaluating constants and
@ -1292,8 +1292,8 @@ class ConstantVisitor extends UnifyingAstVisitor<DartObjectImpl> {
} }
ParameterizedType thenType = thenResult.type; ParameterizedType thenType = thenResult.type;
ParameterizedType elseType = elseResult.type; ParameterizedType elseType = elseResult.type;
return new DartObjectImpl.validWithUnknownValue( return new DartObjectImpl.validWithUnknownValue(_typeSystem
_typeSystem.getLeastUpperBound(thenType, elseType) as InterfaceType); .getLeastUpperBound(thenType, elseType) as ParameterizedType);
} }
@override @override

View file

@ -144,9 +144,6 @@ class DartObjectImpl implements DartObject {
*/ */
static const List<DartObjectImpl> EMPTY_LIST = const <DartObjectImpl>[]; static const List<DartObjectImpl> EMPTY_LIST = const <DartObjectImpl>[];
/**
* The run-time type of this object.
*/
@override @override
final ParameterizedType type; final ParameterizedType type;
@ -163,7 +160,7 @@ class DartObjectImpl implements DartObject {
/** /**
* Create an object to represent an unknown value. * Create an object to represent an unknown value.
*/ */
factory DartObjectImpl.validWithUnknownValue(InterfaceType type) { factory DartObjectImpl.validWithUnknownValue(ParameterizedType type) {
if (type.element.library.isDartCore) { if (type.element.library.isDartCore) {
String typeName = type.name; String typeName = type.name;
if (typeName == "bool") { if (typeName == "bool") {