| Index: pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
|
| diff --git a/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart b/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
|
| index b1cdf8edbfb841c6ff57f09321400eb3772576ab..28689c56aa08b87ec6b2bf1e760167ddef2660f2 100644
|
| --- a/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
|
| +++ b/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
|
| @@ -271,8 +271,111 @@ abstract class _ResynthesizeAstTest extends ResynthesizeTest
|
| AnalysisOptionsImpl createOptions() =>
|
| super.createOptions()..strongMode = isStrongMode;
|
|
|
| - @override
|
| - TestSummaryResynthesizer encodeDecodeLibrarySource(Source source) {
|
| + test_getElement_constructor_named() async {
|
| + String text = 'class C { C.named(); }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + ConstructorElement original = context
|
| + .computeLibraryElement(source)
|
| + .getType('C')
|
| + .getNamedConstructor('named');
|
| + expect(original, isNotNull);
|
| + ConstructorElement resynthesized = _validateGetElement(text, original);
|
| + compareConstructorElements(resynthesized, original, 'C.constructor named');
|
| + }
|
| +
|
| + test_getElement_constructor_unnamed() async {
|
| + String text = 'class C { C(); }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + ConstructorElement original =
|
| + context.computeLibraryElement(source).getType('C').unnamedConstructor;
|
| + expect(original, isNotNull);
|
| + ConstructorElement resynthesized = _validateGetElement(text, original);
|
| + compareConstructorElements(resynthesized, original, 'C.constructor');
|
| + }
|
| +
|
| + test_getElement_field() async {
|
| + String text = 'class C { var f; }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + FieldElement original =
|
| + context.computeLibraryElement(source).getType('C').getField('f');
|
| + expect(original, isNotNull);
|
| + FieldElement resynthesized = _validateGetElement(text, original);
|
| + compareFieldElements(resynthesized, original, 'C.field f');
|
| + }
|
| +
|
| + test_getElement_getter() async {
|
| + String text = 'class C { get f => null; }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + PropertyAccessorElement original =
|
| + context.computeLibraryElement(source).getType('C').getGetter('f');
|
| + expect(original, isNotNull);
|
| + PropertyAccessorElement resynthesized = _validateGetElement(text, original);
|
| + comparePropertyAccessorElements(resynthesized, original, 'C.getter f');
|
| + }
|
| +
|
| + test_getElement_method() async {
|
| + String text = 'class C { f() {} }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + MethodElement original =
|
| + context.computeLibraryElement(source).getType('C').getMethod('f');
|
| + expect(original, isNotNull);
|
| + MethodElement resynthesized = _validateGetElement(text, original);
|
| + compareMethodElements(resynthesized, original, 'C.method f');
|
| + }
|
| +
|
| + test_getElement_operator() async {
|
| + String text = 'class C { operator+(x) => null; }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + MethodElement original =
|
| + context.computeLibraryElement(source).getType('C').getMethod('+');
|
| + expect(original, isNotNull);
|
| + MethodElement resynthesized = _validateGetElement(text, original);
|
| + compareMethodElements(resynthesized, original, 'C.operator+');
|
| + }
|
| +
|
| + test_getElement_setter() async {
|
| + String text = 'class C { void set f(value) {} }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + PropertyAccessorElement original =
|
| + context.computeLibraryElement(source).getType('C').getSetter('f');
|
| + expect(original, isNotNull);
|
| + PropertyAccessorElement resynthesized = _validateGetElement(text, original);
|
| + comparePropertyAccessorElements(resynthesized, original, 'C.setter f');
|
| + }
|
| +
|
| + test_getElement_unit() async {
|
| + String text = 'class C { f() {} }';
|
| + Source source = addLibrarySource('/test.dart', text);
|
| + CompilationUnitElement original =
|
| + context.computeLibraryElement(source).definingCompilationUnit;
|
| + expect(original, isNotNull);
|
| + CompilationUnitElement resynthesized = _validateGetElement(text, original);
|
| + compareCompilationUnitElements(resynthesized, original);
|
| + }
|
| +
|
| + /**
|
| + * Return a [SummaryResynthesizer] to resynthesize the library with the
|
| + * given [Source].
|
| + */
|
| + TestSummaryResynthesizer _encodeDecodeLibrarySource(Source source) {
|
| return _encodeLibrary(source);
|
| }
|
| +
|
| + /**
|
| + * Encode the library containing [original] into a summary and then use
|
| + * [TestSummaryResynthesizer.getElement] to retrieve just the original
|
| + * element from the resynthesized summary.
|
| + */
|
| + Element _validateGetElement(String text, Element original) {
|
| + SummaryResynthesizer resynthesizer =
|
| + _encodeDecodeLibrarySource(original.library.source);
|
| + ElementLocationImpl location = original.location;
|
| + Element result = resynthesizer.getElement(location);
|
| + checkMinimalResynthesisWork(resynthesizer, original.library);
|
| + // Check that no other summaries needed to be resynthesized to resynthesize
|
| + // the library element.
|
| + expect(resynthesizer.resynthesisCount, 3);
|
| + expect(result.location, location);
|
| + return result;
|
| + }
|
| }
|
|
|