Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Unified Diff: dart/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerTestCase.java

Issue 20722006: Removed compiler/ directory from repository (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dart/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerTestCase.java
diff --git a/dart/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerTestCase.java b/dart/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerTestCase.java
deleted file mode 100644
index ab903c7ea3866827f0111df750b335ad3512e60d..0000000000000000000000000000000000000000
--- a/dart/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerTestCase.java
+++ /dev/null
@@ -1,357 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.google.dart.compiler.type;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.google.common.io.CharStreams;
-import com.google.dart.compiler.ErrorCode;
-import com.google.dart.compiler.ast.DartClass;
-import com.google.dart.compiler.ast.DartExprStmt;
-import com.google.dart.compiler.ast.DartExpression;
-import com.google.dart.compiler.ast.DartField;
-import com.google.dart.compiler.ast.DartFieldDefinition;
-import com.google.dart.compiler.ast.DartFunctionExpression;
-import com.google.dart.compiler.ast.DartFunctionTypeAlias;
-import com.google.dart.compiler.ast.DartNode;
-import com.google.dart.compiler.ast.DartStatement;
-import com.google.dart.compiler.ast.DartUnit;
-import com.google.dart.compiler.ast.LibraryUnit;
-import com.google.dart.compiler.parser.DartParser;
-import com.google.dart.compiler.resolver.ClassElement;
-import com.google.dart.compiler.resolver.ClassNodeElement;
-import com.google.dart.compiler.resolver.CoreTypeProvider;
-import com.google.dart.compiler.resolver.Element;
-import com.google.dart.compiler.resolver.Elements;
-import com.google.dart.compiler.resolver.FunctionAliasElement;
-import com.google.dart.compiler.resolver.LibraryElement;
-import com.google.dart.compiler.resolver.MemberBuilder;
-import com.google.dart.compiler.resolver.MockLibraryUnit;
-import com.google.dart.compiler.resolver.ResolutionContext;
-import com.google.dart.compiler.resolver.Resolver;
-import com.google.dart.compiler.resolver.Resolver.ResolveElementsVisitor;
-import com.google.dart.compiler.resolver.Scope;
-import com.google.dart.compiler.resolver.SupertypeResolver;
-import com.google.dart.compiler.resolver.TopLevelElementBuilder;
-import com.google.dart.compiler.util.DartSourceString;
-
-import java.io.IOError;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Base class for static type analysis tests.
- */
-public abstract class TypeAnalyzerTestCase extends TypeTestCase {
- private class MockCoreTypeProvider implements CoreTypeProvider {
- private final Type voidType = Types.newVoidType();
- private final DynamicType dynamicType = Types.newDynamicType();
-
- @Override
- public InterfaceType getArrayType(Type elementType) {
- return list.getType().subst(Arrays.asList(elementType), list.getTypeParameters());
- }
-
- @Override
- public InterfaceType getBoolType() {
- return bool.getType();
- }
-
- @Override
- public InterfaceType getDoubleType() {
- return doubleElement.getType();
- }
-
- @Override
- public DynamicType getDynamicType() {
- return dynamicType;
- }
-
- @Override
- public InterfaceType getFunctionType() {
- return function.getType();
- }
-
- @Override
- public InterfaceType getIntType() {
- return intElement.getType();
- }
-
- @Override
- public InterfaceType getIteratorType(Type elementType) {
- InterfaceType iteratorType = iterElement.getType();
- return iteratorType.subst(Arrays.asList(elementType), iterElement.getTypeParameters());
- }
-
- @Override
- public InterfaceType getMapType(Type key, Type value) {
- InterfaceType mapType = map.getType();
- return mapType.subst(Arrays.asList(key, value),
- mapType.getElement().getTypeParameters());
- }
-
- @Override
- public Type getNullType() {
- return getDynamicType();
- }
-
- @Override
- public InterfaceType getNumType() {
- return number.getType();
- }
-
- @Override
- public InterfaceType getObjectType() {
- return object.getType();
- }
-
- @Override
- public InterfaceType getStringType() {
- return string.getType();
- }
-
- @Override
- public Type getVoidType() {
- return voidType;
- }
-
- @Override
- public InterfaceType getTypeType() {
- return type.getType();
- }
- }
- private class MockScope extends Scope {
- private MockScope() {
- super("test mock scope", null);
- }
-
- @Override
- public Element findLocalElement(String name) {
- return coreElements.get(name);
- }
-
- }
- protected final CoreTypeProvider typeProvider = new MockCoreTypeProvider();
- private Resolver resolver = new Resolver(context, getMockScope("<test toplevel>"), typeProvider);
-
- private final Types types = Types.getInstance(typeProvider);
-
- private HashSet<ClassElement> diagnosedAbstractClasses = new HashSet<ClassElement>();
-
- protected DartStatement analyze(String statement) {
- DartStatement node = parseStatement(statement);
- analyzeNode(node);
- return node;
- }
-
- protected ClassElement analyzeClass(ClassNodeElement cls, int expectedErrorCount) {
- setExpectedTypeErrorCount(expectedErrorCount);
- analyzeToplevel(cls.getNode());
- checkExpectedTypeErrorCount(cls.getName());
- return cls;
- }
-
- protected Map<String, ClassNodeElement> analyzeClasses(Map<String, ClassNodeElement> classes,
- ErrorCode... codes) {
- setExpectedTypeErrorCount(codes.length);
- for (ClassNodeElement cls : classes.values()) {
- analyzeToplevel(cls.getNode());
- }
- List<ErrorCode> errorCodes = context.getErrorCodes();
- assertEquals(Arrays.toString(codes), errorCodes.toString());
- errorCodes.clear();
- checkExpectedTypeErrorCount();
- return classes;
- }
-
- protected void analyzeFail(String statement, ErrorCode errorCode) {
- try {
- analyze(statement);
- fail("Test unexpectedly passed. Expected ErrorCode: " + errorCode);
- } catch (TestTypeError error) {
- assertEquals(errorCode, error.getErrorCode());
- }
- }
-
- protected Type analyzeIn(ClassElement element, String expression, int expectedErrorCount) {
- DartExpression node = parseExpression(expression);
- ResolutionContext resolutionContext =
- new ResolutionContext(getMockScope("<test expression>"), context,
- typeProvider).extend(element);
- ResolveElementsVisitor visitor =
- resolver.new ResolveElementsVisitor(resolutionContext, element,
- Elements.methodElement(null, null));
- setExpectedTypeErrorCount(expectedErrorCount);
- node.accept(visitor);
- Type type = node.accept(makeTypeAnalyzer(element));
- checkExpectedTypeErrorCount(expression);
- return type;
- }
-
- private Type analyzeNode(DartNode node) {
- ResolutionContext resolutionContext =
- new ResolutionContext(getMockScope("<test node>"), context, typeProvider);
- ResolveElementsVisitor visitor =
- resolver.new ResolveElementsVisitor(resolutionContext, null,
- Elements.methodElement(null, null));
- node.accept(visitor);
- return node.accept(makeTypeAnalyzer(Elements.dynamicElement()));
- }
-
- private Type analyzeToplevel(DartNode node) {
- return node.accept(makeTypeAnalyzer(Elements.dynamicElement()));
- }
-
- private String assign(String type, String expression) {
- return String.format("() { %s x = %s; }", type, expression);
- }
-
- protected Type checkAssignIn(ClassElement element, String type, String expression, int errorCount) {
- return analyzeIn(element, assign(type, expression), errorCount);
- }
-
- protected void checkFunctionStatement(String statement, String printString) {
- DartExprStmt node = (DartExprStmt) analyze(statement);
- DartFunctionExpression expression = (DartFunctionExpression) node.getExpression();
- Element element = expression.getElement();
- FunctionType type = (FunctionType) element.getType();
- assertEquals(printString, type.toString());
- }
-
- protected void checkSimpleType(Type type, String expression) {
- assertSame(type, typeOf(expression));
- setExpectedTypeErrorCount(1); // x is unresolved.
- assertSame(type, typeOf("x = " + expression));
- checkExpectedTypeErrorCount();
- }
-
- protected void checkType(Type type, String expression) {
- assertEquals(type, typeOf(expression));
- assertEquals(type, typeOf("x = " + expression));
- }
-
- private Scope getMockScope(String name) {
- LibraryUnit libraryUnit = MockLibraryUnit.create();
- return new Scope(name, libraryUnit.getElement(), new MockScope());
- }
-
- private DartParser getParser(String string) {
- DartSourceString source = new DartSourceString("<source string>", string);
- return new DartParser(source, string, false, Sets.<String>newHashSet(), listener, null);
- }
-
- private String getResource(String name) {
- String packageName = getClass().getPackage().getName().replace('.', '/');
- String resouceName = packageName + "/" + name;
- InputStream stream = getClass().getClassLoader().getResourceAsStream(resouceName);
- if (stream == null) {
- throw new AssertionError("Missing resource: " + resouceName);
- }
- InputStreamReader reader = new InputStreamReader(stream);
- try {
- return CharStreams.toString(reader); // Also closes the reader.
- } catch (IOException e) {
- throw new IOError(e);
- }
- }
-
- @Override
- Types getTypes() {
- return types;
- }
-
- protected ClassElement loadClass(String file, String name) {
- ClassElement cls = loadFile(file).get(name);
- assertNotNull("unable to locate " + name, cls);
- return cls;
- }
-
- protected Map<String, ClassNodeElement> loadFile(final String name) {
- String source = getResource(name);
- return loadSource(source);
- }
-
- protected Map<String, ClassNodeElement> loadSource(String source) {
- Map<String, ClassNodeElement> classes = Maps.newLinkedHashMap();
- DartUnit unit = parseUnit(source);
- Scope scope = getMockScope("<test toplevel>");
- LibraryElement libraryElement = scope.getLibrary();
- libraryElement.getScope().declareElement("Object", object);
- unit.setLibrary(libraryElement.getLibraryUnit());
- TopLevelElementBuilder elementBuilder = new TopLevelElementBuilder();
- elementBuilder.exec(unit.getLibrary(), unit, context);
- for (DartNode node : unit.getTopLevelNodes()) {
- if (node instanceof DartClass) {
- DartClass classNode = (DartClass) node;
- ClassNodeElement classElement = classNode.getElement();
- String className = classElement.getName();
- coreElements.put(className, classElement);
- classes.put(className, classElement);
- } else if (node instanceof DartFieldDefinition) {
- DartFieldDefinition fieldNode = (DartFieldDefinition) node;
- for (DartField field : fieldNode.getFields()) {
- Element fieldElement = field.getElement();
- coreElements.put(fieldElement.getName(), fieldElement);
- }
- } else {
- DartFunctionTypeAlias alias = (DartFunctionTypeAlias) node;
- FunctionAliasElement element = alias.getElement();
- coreElements.put(element.getName(), element);
- }
- }
- SupertypeResolver supertypeResolver = new SupertypeResolver();
- supertypeResolver.exec(unit, context, scope, typeProvider);
- MemberBuilder memberBuilder = new MemberBuilder();
- memberBuilder.exec(unit, context, scope, typeProvider);
- resolver.exec(unit);
- return classes;
- }
-
- protected Map<String, ClassNodeElement> loadSource(String firstLine, String secondLine,
- String... rest) {
- return loadSource(Joiner.on('\n').join(firstLine, secondLine, (Object[]) rest).toString());
- }
-
- private TypeAnalyzer.Analyzer makeTypeAnalyzer(ClassElement element) {
- TypeAnalyzer.Analyzer analyzer =
- new TypeAnalyzer.Analyzer(context, typeProvider, diagnosedAbstractClasses);
- analyzer.setCurrentClass(element.getType());
- analyzer.pushBasicBlockContext();
- return analyzer;
- }
-
- private DartExpression parseExpression(String source) {
- return getParser(source).parseExpression();
- }
-
- private DartStatement parseStatement(String source) {
- return getParser(source).parseStatement();
- }
-
- private DartUnit parseUnit(String string) {
- // DartSourceString source = new DartSourceString("<source string>", string);
- return getParser(string).parseUnit();
- }
-
- protected String returnWithType(String type, Object expression) {
- return String.format("%s foo() { return %s; }", type, String.valueOf(expression));
- }
-
- @Override
- protected void tearDown() {
- resolver = null;
- diagnosedAbstractClasses = null;
- }
-
- private Type typeOf(String expression) {
- return analyzeNode(parseExpression(expression));
- }
-}

Powered by Google App Engine
This is Rietveld 408576698