Index: pkg/analyzer/test/src/summary/summary_common.dart |
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart |
index 7d90d0a8e77d71cd448dd8cc4a12fc09fecc978f..3a5d5ec5df1f488a574bc001e3586d78f39e1548 100644 |
--- a/pkg/analyzer/test/src/summary/summary_common.dart |
+++ b/pkg/analyzer/test/src/summary/summary_common.dart |
@@ -141,13 +141,6 @@ abstract class SummaryTest { |
LinkedUnit get definingUnit => linked.units[0]; |
/** |
- * `true` if the linked portion of the summary is expected to contain |
- * absolute URIs. This happens because the element model doesn't (yet) store |
- * enough information to recover relative URIs, TODO(paulberry): fix this. |
- */ |
- bool get expectAbsoluteUrisInDependencies; |
- |
- /** |
* Get access to the linked summary that results from serializing and |
* then deserializing the library under test. |
*/ |
@@ -217,12 +210,7 @@ abstract class SummaryTest { |
*/ |
void checkDependency(int dependency, String absoluteUri, String relativeUri) { |
expect(dependency, new isInstanceOf<int>()); |
- if (expectAbsoluteUrisInDependencies) { |
- // The element model doesn't (yet) store enough information to recover |
- // relative URIs, so we have to use the absolute URI. |
- // TODO(paulberry): fix this. |
- expect(linked.dependencies[dependency].uri, absoluteUri); |
- } else if (dependency >= linked.numPrelinkedDependencies) { |
+ if (dependency >= linked.numPrelinkedDependencies) { |
// Fully-linked dependencies are always absolute URIs. |
expect(linked.dependencies[dependency].uri, absoluteUri); |
} else { |
@@ -231,17 +219,11 @@ abstract class SummaryTest { |
} |
/** |
- * Verify that the given [dependency] lists the given [absoluteUris] or |
+ * Verify that the given [dependency] lists the given |
* [relativeUris] as its parts. |
*/ |
- void checkDependencyParts(LinkedDependency dependency, |
- List<String> absoluteUris, List<String> relativeUris) { |
- if (expectAbsoluteUrisInDependencies) { |
- // The element model doesn't (yet) store enough information to recover |
- // relative URIs, so we have to use the absolute URI. |
- // TODO(paulberry): fix this. |
- relativeUris = absoluteUris; |
- } |
+ void checkDependencyParts( |
+ LinkedDependency dependency, List<String> relativeUris) { |
expect(dependency.parts, relativeUris); |
} |
@@ -295,20 +277,13 @@ abstract class SummaryTest { |
/** |
* Verify that the dependency table contains an entry for a file reachable |
- * via the given [absoluteUri] and [relativeUri]. If [fullyLinked] is |
+ * via the given [relativeUri]. If [fullyLinked] is |
* `true`, then the dependency should be a fully-linked dependency; otherwise |
* it should be a prelinked dependency. |
* |
* The index of the [LinkedDependency] is returned. |
*/ |
- int checkHasDependency(String absoluteUri, String relativeUri, |
- {bool fullyLinked: false}) { |
- if (expectAbsoluteUrisInDependencies) { |
- // The element model doesn't (yet) store enough information to recover |
- // relative URIs, so we have to use the absolute URI. |
- // TODO(paulberry): fix this. |
- relativeUri = absoluteUri; |
- } |
+ int checkHasDependency(String relativeUri, {bool fullyLinked: false}) { |
List<String> found = <String>[]; |
for (int i = 0; i < linked.dependencies.length; i++) { |
LinkedDependency dep = linked.dependencies[i]; |
@@ -359,15 +334,9 @@ abstract class SummaryTest { |
/** |
* Verify that the dependency table *does not* contain any entries for a file |
- * reachable via the given [absoluteUri] and [relativeUri]. |
+ * reachable via the given [relativeUri]. |
*/ |
- void checkLacksDependency(String absoluteUri, String relativeUri) { |
- if (expectAbsoluteUrisInDependencies) { |
- // The element model doesn't (yet) store enough information to recover |
- // relative URIs, so we have to use the absolute URI. |
- // TODO(paulberry): fix this. |
- relativeUri = absoluteUri; |
- } |
+ void checkLacksDependency(String relativeUri) { |
for (LinkedDependency dep in linked.dependencies) { |
if (dep.uri == relativeUri) { |
fail('Unexpected dependency found: $relativeUri'); |
@@ -620,6 +589,37 @@ abstract class SummaryTest { |
checkTypeRef(typeRef, null, null, 'void'); |
} |
+ fail_invalid_prefix_dynamic() { |
+// if (checkAstDerivedData) { |
+// // TODO(paulberry): get this to work properly. |
+// return; |
+// } |
+ var t = serializeTypeText('dynamic.T', allowErrors: true); |
+ checkUnresolvedTypeRef(t, 'dynamic', 'T'); |
+ } |
+ |
+ fail_invalid_prefix_type_parameter() { |
+// if (checkAstDerivedData) { |
+// // TODO(paulberry): get this to work properly. |
+// return; |
+// } |
+ checkUnresolvedTypeRef( |
+ serializeClassText('class C<T> { T.U x; }', allowErrors: true) |
+ .fields[0] |
+ .type, |
+ 'T', |
+ 'U'); |
+ } |
+ |
+ fail_invalid_prefix_void() { |
+// if (checkAstDerivedData) { |
+// // TODO(paulberry): get this to work properly. |
+// return; |
+// } |
+ checkUnresolvedTypeRef( |
+ serializeTypeText('void.T', allowErrors: true), 'void', 'T'); |
+ } |
+ |
/** |
* Find the class with the given [className] in the summary, and return its |
* [UnlinkedClass] data structure. If [unit] is not given, the class is |
@@ -1363,7 +1363,7 @@ class E {} |
checkInferredTypeSlot(executable.localFunctions[0].inferredReturnTypeSlot, |
absUri('/a.dart'), 'a.dart', 'D', |
onlyInStrongMode: false); |
- checkHasDependency(absUri('/a.dart'), 'a.dart', fullyLinked: false); |
+ checkHasDependency('a.dart', fullyLinked: false); |
} |
test_closure_executable_with_return_type_from_closure() { |
@@ -1408,7 +1408,7 @@ f() { |
absUri('/b.dart'), 'b.dart', 'D', |
onlyInStrongMode: false); |
if (!skipFullyLinkedData) { |
- checkHasDependency(absUri('/b.dart'), 'b.dart', fullyLinked: true); |
+ checkHasDependency('b.dart', fullyLinked: true); |
} |
} |
@@ -4699,7 +4699,7 @@ class C { |
// re-export any names defined in b.dart, because a change to b.dart might |
// cause it to start exporting a name that the main test library *does* |
// use. |
- checkHasDependency(absUri('/b.dart'), 'b.dart'); |
+ checkHasDependency('b.dart'); |
} |
test_dependencies_export_unused() { |
@@ -4709,17 +4709,17 @@ class C { |
// re-export any names defined in a.dart, because a change to a.dart might |
// cause it to start exporting a name that the main test library *will* |
// re-export. |
- checkHasDependency(absUri('/a.dart'), 'a.dart'); |
+ checkHasDependency('a.dart'); |
} |
test_dependencies_import_to_export() { |
addNamedSource('/a.dart', 'library a; export "b.dart"; class A {}'); |
addNamedSource('/b.dart', 'library b;'); |
serializeLibraryText('import "a.dart"; A a;'); |
- checkHasDependency(absUri('/a.dart'), 'a.dart'); |
+ checkHasDependency('a.dart'); |
// The main test library depends on b.dart, because names defined in |
// b.dart are exported by a.dart. |
- checkHasDependency(absUri('/b.dart'), 'b.dart'); |
+ checkHasDependency('b.dart'); |
} |
test_dependencies_import_to_export_in_subdirs_absolute_export() { |
@@ -4727,40 +4727,40 @@ class C { |
'library a; export "${absUri('/a/b/b.dart')}"; class A {}'); |
addNamedSource('/a/b/b.dart', 'library b;'); |
serializeLibraryText('import "a/a.dart"; A a;'); |
- checkHasDependency(absUri('/a/a.dart'), 'a/a.dart'); |
+ checkHasDependency('a/a.dart'); |
// The main test library depends on b.dart, because names defined in |
// b.dart are exported by a.dart. |
- checkHasDependency(absUri('/a/b/b.dart'), absUri('/a/b/b.dart')); |
+ checkHasDependency(absUri('/a/b/b.dart')); |
} |
test_dependencies_import_to_export_in_subdirs_absolute_import() { |
addNamedSource('/a/a.dart', 'library a; export "b/b.dart"; class A {}'); |
addNamedSource('/a/b/b.dart', 'library b;'); |
serializeLibraryText('import "${absUri('/a/a.dart')}"; A a;'); |
- checkHasDependency(absUri('/a/a.dart'), absUri('/a/a.dart')); |
+ checkHasDependency(absUri('/a/a.dart')); |
// The main test library depends on b.dart, because names defined in |
// b.dart are exported by a.dart. |
- checkHasDependency(absUri('/a/b/b.dart'), absUri('/a/b/b.dart')); |
+ checkHasDependency(absUri('/a/b/b.dart')); |
} |
test_dependencies_import_to_export_in_subdirs_relative() { |
addNamedSource('/a/a.dart', 'library a; export "b/b.dart"; class A {}'); |
addNamedSource('/a/b/b.dart', 'library b;'); |
serializeLibraryText('import "a/a.dart"; A a;'); |
- checkHasDependency(absUri('/a/a.dart'), 'a/a.dart'); |
+ checkHasDependency('a/a.dart'); |
// The main test library depends on b.dart, because names defined in |
// b.dart are exported by a.dart. |
- checkHasDependency(absUri('/a/b/b.dart'), 'a/b/b.dart'); |
+ checkHasDependency('a/b/b.dart'); |
} |
test_dependencies_import_to_export_loop() { |
addNamedSource('/a.dart', 'library a; export "b.dart"; class A {}'); |
addNamedSource('/b.dart', 'library b; export "a.dart";'); |
serializeLibraryText('import "a.dart"; A a;'); |
- checkHasDependency(absUri('/a.dart'), 'a.dart'); |
+ checkHasDependency('a.dart'); |
// Serialization should have been able to walk the transitive export |
// dependencies to b.dart without going into an infinite loop. |
- checkHasDependency(absUri('/b.dart'), 'b.dart'); |
+ checkHasDependency('b.dart'); |
} |
test_dependencies_import_to_export_transitive_closure() { |
@@ -4768,10 +4768,10 @@ class C { |
addNamedSource('/b.dart', 'library b; export "c.dart";'); |
addNamedSource('/c.dart', 'library c;'); |
serializeLibraryText('import "a.dart"; A a;'); |
- checkHasDependency(absUri('/a.dart'), 'a.dart'); |
+ checkHasDependency('a.dart'); |
// The main test library depends on c.dart, because names defined in |
// c.dart are exported by b.dart and then re-exported by a.dart. |
- checkHasDependency(absUri('/c.dart'), 'c.dart'); |
+ checkHasDependency('c.dart'); |
} |
test_dependencies_import_to_export_unused() { |
@@ -4781,7 +4781,7 @@ class C { |
// The main test library depends on b.dart, even though it doesn't use any |
// names defined in b.dart, because a change to b.dart might cause it to |
// start exporting a name that the main test library *does* use. |
- checkHasDependency(absUri('/b.dart'), 'b.dart'); |
+ checkHasDependency('b.dart'); |
} |
test_dependencies_import_transitive_closure() { |
@@ -4789,10 +4789,10 @@ class C { |
'/a.dart', 'library a; import "b.dart"; class A extends B {}'); |
addNamedSource('/b.dart', 'library b; class B {}'); |
serializeLibraryText('import "a.dart"; A a;'); |
- checkHasDependency(absUri('/a.dart'), 'a.dart'); |
+ checkHasDependency('a.dart'); |
// The main test library doesn't depend on b.dart, because no change to |
// b.dart can possibly affect the serialized element model for it. |
- checkLacksDependency(absUri('/b.dart'), 'b.dart'); |
+ checkLacksDependency('b.dart'); |
} |
test_dependencies_import_unused() { |
@@ -4801,7 +4801,7 @@ class C { |
// The main test library depends on a.dart, even though it doesn't use any |
// names defined in a.dart, because a change to a.dart might cause it to |
// start exporting a name that the main test library *does* use. |
- checkHasDependency(absUri('/a.dart'), 'a.dart'); |
+ checkHasDependency('a.dart'); |
} |
test_dependencies_parts() { |
@@ -4810,9 +4810,8 @@ class C { |
addNamedSource('/b.dart', 'part of a;'); |
addNamedSource('/c.dart', 'part of a;'); |
serializeLibraryText('import "a.dart"; A a;'); |
- int dep = checkHasDependency(absUri('/a.dart'), 'a.dart'); |
- checkDependencyParts(linked.dependencies[dep], |
- [absUri('/b.dart'), absUri('/c.dart')], ['b.dart', 'c.dart']); |
+ int dep = checkHasDependency('a.dart'); |
+ checkDependencyParts(linked.dependencies[dep], ['b.dart', 'c.dart']); |
} |
test_dependencies_parts_relative_to_importing_library() { |
@@ -4822,11 +4821,9 @@ class C { |
addNamedSource('/a/c/e/f.dart', 'part of d;'); |
addNamedSource('/a/c/g/h.dart', 'part of d;'); |
serializeLibraryText('import "a/b.dart"; D d;'); |
- int dep = checkHasDependency(absUri('/a/c/d.dart'), 'a/c/d.dart'); |
+ int dep = checkHasDependency('a/c/d.dart'); |
checkDependencyParts( |
- linked.dependencies[dep], |
- [absUri('/a/c/e/f.dart'), absUri('/a/c/g/h.dart')], |
- ['a/c/e/f.dart', 'a/c/g/h.dart']); |
+ linked.dependencies[dep], ['a/c/e/f.dart', 'a/c/g/h.dart']); |
} |
test_elements_in_part() { |
@@ -7792,10 +7789,8 @@ get f => null;'''; |
// The dependency on b.dart is implicit, so it should be placed at the end |
// of the dependency list, after a.dart, even though the code that refers |
// to b.dart comes before the code that refers to a.dart. |
- int aDep = |
- checkHasDependency(absUri('/a.dart'), 'a.dart', fullyLinked: false); |
- int bDep = |
- checkHasDependency(absUri('/b.dart'), 'b.dart', fullyLinked: true); |
+ int aDep = checkHasDependency('a.dart', fullyLinked: false); |
+ int bDep = checkHasDependency('b.dart', fullyLinked: true); |
expect(aDep, lessThan(bDep)); |
} |
@@ -8379,7 +8374,7 @@ var v = f(g: (x, y) {}); |
checkInferredTypeSlot(variable.initializer.inferredReturnTypeSlot, |
absUri('/a.dart'), 'a.dart', 'D', |
onlyInStrongMode: false); |
- checkHasDependency(absUri('/a.dart'), 'a.dart', fullyLinked: false); |
+ checkHasDependency('a.dart', fullyLinked: false); |
} |
test_initializer_executable_with_return_type_from_closure() { |
@@ -8490,41 +8485,10 @@ void f() { |
absUri('/b.dart'), 'b.dart', 'D', |
onlyInStrongMode: false); |
if (!skipFullyLinkedData) { |
- checkHasDependency(absUri('/b.dart'), 'b.dart', fullyLinked: true); |
+ checkHasDependency('b.dart', fullyLinked: true); |
} |
} |
- fail_invalid_prefix_dynamic() { |
-// if (checkAstDerivedData) { |
-// // TODO(paulberry): get this to work properly. |
-// return; |
-// } |
- var t = serializeTypeText('dynamic.T', allowErrors: true); |
- checkUnresolvedTypeRef(t, 'dynamic', 'T'); |
- } |
- |
- fail_invalid_prefix_type_parameter() { |
-// if (checkAstDerivedData) { |
-// // TODO(paulberry): get this to work properly. |
-// return; |
-// } |
- checkUnresolvedTypeRef( |
- serializeClassText('class C<T> { T.U x; }', allowErrors: true) |
- .fields[0] |
- .type, |
- 'T', |
- 'U'); |
- } |
- |
- fail_invalid_prefix_void() { |
-// if (checkAstDerivedData) { |
-// // TODO(paulberry): get this to work properly. |
-// return; |
-// } |
- checkUnresolvedTypeRef( |
- serializeTypeText('void.T', allowErrors: true), 'void', 'T'); |
- } |
- |
test_library_documented() { |
String text = ''' |
// Extra comment so doc comment offset != 0 |