| Index: compiler/javatests/com/google/dart/compiler/type/TypeTestCase.java
|
| diff --git a/compiler/javatests/com/google/dart/compiler/type/TypeTestCase.java b/compiler/javatests/com/google/dart/compiler/type/TypeTestCase.java
|
| index e9342deb1b4670d992d5d957c5edee48c4c8d705..61eaa74e60aa7d57d81527be1fb93557259cc0e1 100644
|
| --- a/compiler/javatests/com/google/dart/compiler/type/TypeTestCase.java
|
| +++ b/compiler/javatests/com/google/dart/compiler/type/TypeTestCase.java
|
| @@ -8,8 +8,19 @@ import com.google.dart.compiler.DartCompilationError;
|
| import com.google.dart.compiler.DartCompilerListener;
|
| import com.google.dart.compiler.ErrorCode;
|
| import com.google.dart.compiler.ast.DartUnit;
|
| +import com.google.dart.compiler.ast.DartBlock;
|
| +import com.google.dart.compiler.ast.DartFunction;
|
| +import com.google.dart.compiler.ast.DartIdentifier;
|
| +import com.google.dart.compiler.ast.DartInitializer;
|
| +import com.google.dart.compiler.ast.DartMethodDefinition;
|
| +import com.google.dart.compiler.ast.DartParameter;
|
| +import com.google.dart.compiler.ast.DartStatement;
|
| +import com.google.dart.compiler.ast.DartTypeNode;
|
| +import com.google.dart.compiler.ast.DartTypeParameter;
|
| +import com.google.dart.compiler.ast.Modifiers;
|
| import com.google.dart.compiler.resolver.ClassElement;
|
| import com.google.dart.compiler.resolver.Elements;
|
| +import com.google.dart.compiler.resolver.MethodElement;
|
| import com.google.dart.compiler.resolver.TypeVariableElement;
|
| import com.google.dart.compiler.testing.TestCompilerContext;
|
|
|
| @@ -18,6 +29,7 @@ import junit.framework.TestCase;
|
| import org.junit.Assert;
|
|
|
| import java.util.Arrays;
|
| +import java.util.Collections;
|
| import java.util.HashMap;
|
| import java.util.LinkedHashMap;
|
| import java.util.Map;
|
| @@ -35,7 +47,8 @@ abstract class TypeTestCase extends TestCase {
|
| final ClassElement doubleElement = element("double", itype(number));
|
| final ClassElement bool = element("bool", itype(object));
|
| final ClassElement string = element("String", itype(object));
|
| - final ClassElement list = element("List", itype(object), typeVar("E", itype(object)));
|
| + final ClassElement iterElement = element("Iterator", itype(object), typeVar("E", itype(object)));
|
| + final ClassElement list = makeListElement();
|
| final ClassElement map = element("Map", itype(object),
|
| typeVar("K", itype(object)), typeVar("V", itype(object)));
|
| final ClassElement stackTrace = element("StackTrace", itype(object));
|
| @@ -59,6 +72,27 @@ abstract class TypeTestCase extends TestCase {
|
|
|
| abstract Types getTypes();
|
|
|
| + ClassElement makeListElement() {
|
| + final TypeVariable typeVar = typeVar("E", itype(object));
|
| + final ClassElement element = element("List", itype(object), typeVar);
|
| + DartTypeNode returnTypeNode = new DartTypeNode(new DartIdentifier("Iterator"),
|
| + Arrays.asList(new DartTypeNode(new DartIdentifier("E"))));
|
| +
|
| + DartMethodDefinition iteratorMethod = DartMethodDefinition.create(
|
| + new DartIdentifier("iterator"), new DartFunction(Collections.<DartParameter>emptyList(),
|
| + new DartBlock(Collections.<DartStatement>emptyList()), returnTypeNode),
|
| + Modifiers.NONE,
|
| + Collections.<DartInitializer>emptyList(),
|
| + Collections.<DartTypeParameter>emptyList());
|
| + MethodElement iteratorMethodElement = Elements.methodFromMethodNode(iteratorMethod, element);
|
| + Type returnType = Types.interfaceType(iterElement, Arrays.asList(typeVar));
|
| + FunctionType functionType = ftype(function, returnType, Collections.<String,Type>emptyMap(),
|
| + null);
|
| + Elements.setType(iteratorMethodElement, functionType);
|
| + Elements.addMethod(element, iteratorMethodElement);
|
| + return element;
|
| + }
|
| +
|
| protected void setExpectedTypeErrorCount(int count) {
|
| checkExpectedTypeErrorCount();
|
| expectedTypeErrors = count;
|
|
|