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

Unified Diff: pkg/analyzer/test/generated/resolver_test.dart

Issue 561373002: Issue 19682. New analyzer snapshot that fixes an inline refactoring problem. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Changes for mock_sdk Created 6 years, 3 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:
Download patch
« no previous file with comments | « pkg/analyzer/test/generated/engine_test.dart ('k') | pkg/analyzer2dart/test/mock_sdk.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/generated/resolver_test.dart
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 9d5693f687cd2b82d40478f527a44871e7f0747c..2735d72e9fd31470b2cc99b39b986f2c0eec223a 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -63,17 +63,17 @@ class AnalysisContextFactory {
* @return the analysis context that was created
*/
static AnalysisContextImpl initContextWithCore(AnalysisContextImpl context) {
- SourceFactory sourceFactory = new SourceFactory([
- new DartUriResolver(DirectoryBasedDartSdk.defaultSdk),
- new FileUriResolver()]);
+ DirectoryBasedDartSdk sdk = DirectoryBasedDartSdk.defaultSdk;
+ SourceFactory sourceFactory = new SourceFactory([new DartUriResolver(sdk), new FileUriResolver()]);
context.sourceFactory = sourceFactory;
+ AnalysisContext coreContext = sdk.context;
//
// dart:core
//
TestTypeProvider provider = new TestTypeProvider();
CompilationUnitElementImpl coreUnit = new CompilationUnitElementImpl("core.dart");
Source coreSource = sourceFactory.forUri(DartSdk.DART_CORE);
- context.setContents(coreSource, "");
+ coreContext.setContents(coreSource, "");
coreUnit.source = coreSource;
ClassElementImpl proxyClassElement = ElementFactory.classElement2("_Proxy", []);
coreUnit.types = <ClassElement> [
@@ -101,14 +101,14 @@ class AnalysisContextFactory {
deprecatedTopLevelVariableElt.getter,
deprecatedTopLevelVariableElt.setter];
coreUnit.topLevelVariables = <TopLevelVariableElement> [proxyTopLevelVariableElt, deprecatedTopLevelVariableElt];
- LibraryElementImpl coreLibrary = new LibraryElementImpl.forNode(context, AstFactory.libraryIdentifier2(["dart", "core"]));
+ LibraryElementImpl coreLibrary = new LibraryElementImpl.forNode(coreContext, AstFactory.libraryIdentifier2(["dart", "core"]));
coreLibrary.definingCompilationUnit = coreUnit;
//
// dart:async
//
CompilationUnitElementImpl asyncUnit = new CompilationUnitElementImpl("async.dart");
Source asyncSource = sourceFactory.forUri(DartSdk.DART_ASYNC);
- context.setContents(asyncSource, "");
+ coreContext.setContents(asyncSource, "");
asyncUnit.source = asyncSource;
// Future
ClassElementImpl futureElement = ElementFactory.classElement2("Future", ["T"]);
@@ -141,14 +141,14 @@ class AnalysisContextFactory {
completerElement,
futureElement,
ElementFactory.classElement2("Stream", ["T"])];
- LibraryElementImpl asyncLibrary = new LibraryElementImpl.forNode(context, AstFactory.libraryIdentifier2(["dart", "async"]));
+ LibraryElementImpl asyncLibrary = new LibraryElementImpl.forNode(coreContext, AstFactory.libraryIdentifier2(["dart", "async"]));
asyncLibrary.definingCompilationUnit = asyncUnit;
//
// dart:html
//
CompilationUnitElementImpl htmlUnit = new CompilationUnitElementImpl("html_dartium.dart");
Source htmlSource = sourceFactory.forUri(DartSdk.DART_HTML);
- context.setContents(htmlSource, "");
+ coreContext.setContents(htmlSource, "");
htmlUnit.source = htmlSource;
ClassElementImpl elementElement = ElementFactory.classElement2("Element", []);
InterfaceType elementType = elementElement.type;
@@ -178,7 +178,7 @@ class AnalysisContextFactory {
TopLevelVariableElementImpl document = ElementFactory.topLevelVariableElement3("document", false, true, htmlDocumentElement.type);
htmlUnit.topLevelVariables = <TopLevelVariableElement> [document];
htmlUnit.accessors = <PropertyAccessorElement> [document.getter];
- LibraryElementImpl htmlLibrary = new LibraryElementImpl.forNode(context, AstFactory.libraryIdentifier2(["dart", "dom", "html"]));
+ LibraryElementImpl htmlLibrary = new LibraryElementImpl.forNode(coreContext, AstFactory.libraryIdentifier2(["dart", "dom", "html"]));
htmlLibrary.definingCompilationUnit = htmlUnit;
HashMap<Source, LibraryElement> elementMap = new HashMap<Source, LibraryElement>();
elementMap[coreSource] = coreLibrary;
@@ -27421,32 +27421,6 @@ class TypePropagationTest extends ResolverTestCase {
"}"]), null, typeProvider.dynamicType);
}
- void fail_mergePropagatedTypesAtJoinPoint_6() {
- // https://code.google.com/p/dart/issues/detail?id=19929
- //
- // Labeled [break]s are unsafe for the purposes of [isAbruptTerminationStatement].
- //
- // This is tricky: the [break] jumps back above the [if], making
- // it into a loop of sorts. The [if] type-propagation code assumes
- // that [break] does not introduce a loop.
- String code = EngineTestCase.createSource([
- "f() {",
- " var x = 0;",
- " var c = false;",
- " L: ",
- " if (c) {",
- " } else {",
- " x = '';",
- " c = true;",
- " break L;",
- " }",
- " x; // marker",
- "}"]);
- DartType t = _findMarkedIdentifier(code, "; // marker").propagatedType;
- JUnitTestCase.assertTrue(typeProvider.intType.isSubtypeOf(t));
- JUnitTestCase.assertTrue(typeProvider.stringType.isSubtypeOf(t));
- }
-
void fail_mergePropagatedTypesAtJoinPoint_7() {
// https://code.google.com/p/dart/issues/detail?id=19929
//
@@ -28340,6 +28314,32 @@ class TypePropagationTest extends ResolverTestCase {
"}"]), null, typeProvider.intType);
}
+ void test_mergePropagatedTypesAtJoinPoint_6() {
+ // https://code.google.com/p/dart/issues/detail?id=19929
+ //
+ // Labeled [break]s are unsafe for the purposes of [isAbruptTerminationStatement].
+ //
+ // This is tricky: the [break] jumps back above the [if], making
+ // it into a loop of sorts. The [if] type-propagation code assumes
+ // that [break] does not introduce a loop.
+ String code = EngineTestCase.createSource([
+ "f() {",
+ " var x = 0;",
+ " var c = false;",
+ " L: ",
+ " if (c) {",
+ " } else {",
+ " x = '';",
+ " c = true;",
+ " break L;",
+ " }",
+ " x; // marker",
+ "}"]);
+ DartType t = _findMarkedIdentifier(code, "; // marker").propagatedType;
+ JUnitTestCase.assertTrue(typeProvider.intType.isSubtypeOf(t));
+ JUnitTestCase.assertTrue(typeProvider.stringType.isSubtypeOf(t));
+ }
+
void test_objectMethodOnDynamicExpression_doubleEquals() {
// https://code.google.com/p/dart/issues/detail?id=20342
//
@@ -28696,6 +28696,10 @@ class TypePropagationTest extends ResolverTestCase {
final __test = new TypePropagationTest();
runJUnitTest(__test, __test.test_mergePropagatedTypesAtJoinPoint_4);
});
+ _ut.test('test_mergePropagatedTypesAtJoinPoint_6', () {
+ final __test = new TypePropagationTest();
+ runJUnitTest(__test, __test.test_mergePropagatedTypesAtJoinPoint_6);
+ });
_ut.test('test_objectMethodOnDynamicExpression_doubleEquals', () {
final __test = new TypePropagationTest();
runJUnitTest(__test, __test.test_objectMethodOnDynamicExpression_doubleEquals);
« no previous file with comments | « pkg/analyzer/test/generated/engine_test.dart ('k') | pkg/analyzer2dart/test/mock_sdk.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698