| Index: editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/resolver/StaticTypeAnalyzerTest.java
|
| diff --git a/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/resolver/StaticTypeAnalyzerTest.java b/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/resolver/StaticTypeAnalyzerTest.java
|
| index e6b055530cc0e0f445796f9f95bf2553ea748df6..427d93e42892b0159d0dc61fd169c16eea1ac602 100644
|
| --- a/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/resolver/StaticTypeAnalyzerTest.java
|
| +++ b/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/resolver/StaticTypeAnalyzerTest.java
|
| @@ -15,9 +15,12 @@ package com.google.dart.engine.internal.resolver;
|
|
|
| import com.google.dart.engine.EngineTestCase;
|
| import com.google.dart.engine.ast.AssignmentExpression;
|
| +import com.google.dart.engine.ast.AstFactory;
|
| import com.google.dart.engine.ast.BinaryExpression;
|
| +import com.google.dart.engine.ast.BlockFunctionBody;
|
| import com.google.dart.engine.ast.DoubleLiteral;
|
| import com.google.dart.engine.ast.Expression;
|
| +import com.google.dart.engine.ast.ExpressionFunctionBody;
|
| import com.google.dart.engine.ast.FormalParameter;
|
| import com.google.dart.engine.ast.FormalParameterList;
|
| import com.google.dart.engine.ast.FunctionBody;
|
| @@ -53,6 +56,7 @@ import com.google.dart.engine.internal.element.VariableElementImpl;
|
| import com.google.dart.engine.internal.element.member.MethodMember;
|
| import com.google.dart.engine.internal.type.FunctionTypeImpl;
|
| import com.google.dart.engine.internal.type.InterfaceTypeImpl;
|
| +import com.google.dart.engine.scanner.TokenFactory;
|
| import com.google.dart.engine.scanner.TokenType;
|
| import com.google.dart.engine.sdk.DirectoryBasedDartSdk;
|
| import com.google.dart.engine.source.DartUriResolver;
|
| @@ -134,6 +138,34 @@ public class StaticTypeAnalyzerTest extends EngineTestCase {
|
| */
|
| private TestTypeProvider typeProvider;
|
|
|
| + public void fail_visitAwaitExpression_flattened() throws Exception {
|
| + // TODO(paulberry): Some async/await type checking has not been fully backported from dart. In
|
| + // particular, this test can't be implemented until Future is available in the type provider.
|
| + // See dartbug.com/22252.
|
| + fail("Test not implemented yet");
|
| + }
|
| +
|
| + public void fail_visitAwaitExpression_simple() throws Exception {
|
| + // TODO(paulberry): Some async/await type checking has not been fully backported from dart. In
|
| + // particular, this test can't be implemented until Future is available in the type provider.
|
| + // See dartbug.com/22252.
|
| + fail("Test not implemented yet");
|
| + }
|
| +
|
| + public void fail_visitFunctionExpression_async_expression_flatten() throws Exception {
|
| + // TODO(paulberry): Some async/await type checking has not been fully backported from dart. In
|
| + // particular, this test can't be implemented until Future is available in the type provider.
|
| + // See dartbug.com/22252.
|
| + fail("Test not implemented yet");
|
| + }
|
| +
|
| + public void fail_visitFunctionExpression_async_expression_flatten_twice() throws Exception {
|
| + // TODO(paulberry): Some async/await type checking has not been fully backported from dart. In
|
| + // particular, this test can't be implemented until Future is available in the type provider.
|
| + // See dartbug.com/22252.
|
| + fail("Test not implemented yet");
|
| + }
|
| +
|
| public void fail_visitFunctionExpressionInvocation() throws Exception {
|
| fail("Not yet tested");
|
| listener.assertNoErrors();
|
| @@ -340,6 +372,56 @@ public class StaticTypeAnalyzerTest extends EngineTestCase {
|
| listener.assertNoErrors();
|
| }
|
|
|
| + public void test_visitFunctionExpression_async_block() throws Exception {
|
| + // () async {}
|
| + BlockFunctionBody body = AstFactory.blockFunctionBody();
|
| + body.setKeyword(TokenFactory.tokenFromString("async"));
|
| + FunctionExpression node = resolvedFunctionExpression(AstFactory.formalParameterList(), body);
|
| + @SuppressWarnings("unused")
|
| + Type resultType = analyze(node);
|
| + // TODO(paulberry): We should check that resultType is Future<dynamic>. But we can't because
|
| + // the Future type isn't available in the type provider.
|
| + listener.assertNoErrors();
|
| + }
|
| +
|
| + public void test_visitFunctionExpression_async_expression() throws Exception {
|
| + // () async => e, where e has type int
|
| + InterfaceType intType = typeProvider.getIntType();
|
| + Expression expression = resolvedVariable(intType, "e");
|
| + ExpressionFunctionBody body = AstFactory.expressionFunctionBody(expression);
|
| + body.setKeyword(TokenFactory.tokenFromString("async"));
|
| + FunctionExpression node = resolvedFunctionExpression(AstFactory.formalParameterList(), body);
|
| + @SuppressWarnings("unused")
|
| + Type resultType = analyze(node);
|
| + // TODO(paulberry): We should check that resultType is Future<int>. But we can't because the
|
| + // Future type isn't available in the type provider.
|
| + listener.assertNoErrors();
|
| + }
|
| +
|
| + public void test_visitFunctionExpression_generator_async() throws Exception {
|
| + // () async* {}
|
| + BlockFunctionBody body = AstFactory.blockFunctionBody();
|
| + body.setKeyword(TokenFactory.tokenFromString("async"));
|
| + body.setStar(TokenFactory.tokenFromType(TokenType.STAR));
|
| + FunctionExpression node = resolvedFunctionExpression(AstFactory.formalParameterList(), body);
|
| + @SuppressWarnings("unused")
|
| + Type resultType = analyze(node);
|
| + // TODO(paulberry): we should check that resultType is Stream<dynamic>. But we can't because
|
| + // the Stream type isn't available in the type provider.
|
| + listener.assertNoErrors();
|
| + }
|
| +
|
| + public void test_visitFunctionExpression_generator_sync() throws Exception {
|
| + // () sync* {}
|
| + BlockFunctionBody body = AstFactory.blockFunctionBody();
|
| + body.setKeyword(TokenFactory.tokenFromString("sync"));
|
| + body.setStar(TokenFactory.tokenFromType(TokenType.STAR));
|
| + FunctionExpression node = resolvedFunctionExpression(AstFactory.formalParameterList(), body);
|
| + Type resultType = analyze(node);
|
| + assertFunctionType(typeProvider.getIterableDynamicType(), null, null, null, resultType);
|
| + listener.assertNoErrors();
|
| + }
|
| +
|
| public void test_visitFunctionExpression_named_block() throws Exception {
|
| // ({p1 : 0, p2 : 0}) {}
|
| Type dynamicType = typeProvider.getDynamicType();
|
| @@ -1035,7 +1117,7 @@ public class StaticTypeAnalyzerTest extends EngineTestCase {
|
| }
|
| }
|
|
|
| - assertSame(expectedReturnType, functionType.getReturnType());
|
| + assertEquals(expectedReturnType, functionType.getReturnType());
|
| }
|
|
|
| private void assertType(InterfaceTypeImpl expectedType, InterfaceTypeImpl actualType) {
|
|
|