| Index: compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| diff --git a/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java b/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| index b7486dd22918302c9ae0531784e07d6acf3e6246..367993591fffb80f0bb1aac1a145ad271eadf744 100644
|
| --- a/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| +++ b/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| @@ -1715,15 +1715,19 @@ public class TypeAnalyzer implements DartCompilationPhase {
|
| @Override
|
| public Type visitArrayLiteral(DartArrayLiteral node) {
|
| visit(node.getTypeArguments());
|
| - InterfaceType type = node.getType();
|
| - Type elementType = type.getArguments().get(0);
|
| - for (DartExpression expression : node.getExpressions()) {
|
| - boolean isValueAssignable = checkAssignable(elementType, expression);
|
| - if (developerModeChecks && !isValueAssignable) {
|
| - typeError(expression, ResolverErrorCode.LIST_LITERAL_ELEMENT_TYPE, elementType);
|
| + InterfaceType interfaceType = node.getType();
|
| + if (interfaceType != null
|
| + && interfaceType.getArguments() != null
|
| + && interfaceType.getArguments().size() > 0) {
|
| + Type elementType = interfaceType.getArguments().get(0);
|
| + for (DartExpression expression : node.getExpressions()) {
|
| + boolean isValueAssignable = checkAssignable(elementType, expression);
|
| + if (developerModeChecks && !isValueAssignable) {
|
| + typeError(expression, ResolverErrorCode.LIST_LITERAL_ELEMENT_TYPE, elementType);
|
| + }
|
| }
|
| }
|
| - return type;
|
| + return interfaceType;
|
| }
|
|
|
| @Override
|
|
|