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

Unified Diff: pkg/analyzer2dart/test/tree_shaker_test.dart

Issue 2037123002: Cleanup: remove package "analyzer2dart". (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « pkg/analyzer2dart/test/test_helper.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer2dart/test/tree_shaker_test.dart
diff --git a/pkg/analyzer2dart/test/tree_shaker_test.dart b/pkg/analyzer2dart/test/tree_shaker_test.dart
deleted file mode 100644
index cedb449c580d835d3ecee5814bd1db0a82a98703..0000000000000000000000000000000000000000
--- a/pkg/analyzer2dart/test/tree_shaker_test.dart
+++ /dev/null
@@ -1,546 +0,0 @@
-// Copyright (c) 2014, 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.
-
-import 'mock_sdk.dart';
-import 'package:analyzer/file_system/memory_file_system.dart';
-import 'package:analyzer/src/generated/ast.dart';
-import 'package:analyzer/src/generated/element.dart';
-import 'package:analyzer/src/generated/sdk.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:compiler/src/dart2jslib.dart' show NullSink;
-import 'package:unittest/unittest.dart';
-
-import '../lib/src/closed_world.dart';
-import '../lib/src/driver.dart';
-
-main() {
- test('Toplevel function', () {
- var helper = new TreeShakerTestHelper('''
-main() {
- foo();
-}
-foo() {
-}
-''');
- helper.assertHasFunction('main');
- helper.assertHasFunction('foo');
- });
-
- test('Toplevel field read', () {
- var helper = new TreeShakerTestHelper('''
-main() {
- return foo;
-}
-var foo;
-var bar;
-''');
- helper.assertHasFunction('main');
- helper.assertHasVariable('foo');
- helper.assertNoVariable('bar');
- });
-
- test('Toplevel field write', () {
- var helper = new TreeShakerTestHelper('''
-main() {
- foo = 1;
-}
-var foo;
-var bar;
-''');
- helper.assertHasFunction('main');
- helper.assertHasVariable('foo');
- helper.assertNoVariable('bar');
- });
-
- test('Toplevel field invocation', () {
- var helper = new TreeShakerTestHelper('''
-main() {
- return foo();
-}
-var foo;
-var bar;
-''');
- helper.assertHasFunction('main');
- helper.assertHasVariable('foo');
- helper.assertNoVariable('bar');
- });
-
- test('Member field invocation', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- void call() {}
- void baz() {}
-}
-main() {
- new A();
- foo();
-}
-var foo;
-var bar;
-''');
- helper.assertHasFunction('main');
- helper.assertHasVariable('foo');
- helper.assertNoVariable('bar');
- helper.assertHasInstantiatedClass('A');
- helper.assertHasMethod('A.call');
- helper.assertNoMethod('A.baz');
- });
-
- test('Class instantiation', () {
- var helper = new TreeShakerTestHelper('''
-main() {
- var x = new A();
-}
-class A {}
-class B {}
-''');
- helper.assertHasInstantiatedClass('A');
- helper.assertNoInstantiatedClass('B');
- });
-
- test('Super class instantiation', () {
- var helper = new TreeShakerTestHelper('''
-main() {
- var x = new B();
-}
-class A {}
-class B extends A {}
-''');
- helper.assertHasInstantiatedClass('A');
- helper.assertHasInstantiatedClass('B');
- });
-
- test('Method invocation', () {
- var helper = new TreeShakerTestHelper('''
-main() {
- var x = new A().foo();
-}
-class A {
- foo() {}
- bar() {}
-}
-class B {
- foo() {}
- bar() {}
-}
-''');
- helper.assertHasMethod('A.foo');
- helper.assertNoMethod('A.bar');
- helper.assertNoMethod('B.foo');
- helper.assertNoMethod('B.bar');
- });
-
- test('Method invocation on dynamic', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- m1() {}
- m2() {}
-}
-foo(dynamic x) {
- x.m1();
-}
-main() {
- foo(new A());
-}
-''');
- helper.assertHasMethod('A.m1');
- helper.assertNoMethod('A.m2');
- });
-
- test('Method invocation on dynamic via cascade', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- m1() {}
- m2() {}
-}
-foo(dynamic x) {
- x..m1()..m2();
-}
-main() {
- foo(new A());
-}
-''');
- helper.assertHasMethod('A.m1');
- helper.assertHasMethod('A.m2');
- });
-
- test('Getter usage', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- get g1 => null;
- get g2 => null;
- set g1(x) {}
- set g2(x) {}
-}
-class B {
- get g1 => null;
- get g2 => null;
- set g1(x) {}
- set g2(x) {}
-}
-main() {
- new A().g1;
-}
-''');
- helper.assertHasGetter('A.g1');
- helper.assertNoGetter('A.g2');
- helper.assertNoGetter('B.g1');
- helper.assertNoGetter('B.g2');
- helper.assertNoSetter('A.g1');
- helper.assertNoSetter('A.g2');
- helper.assertNoSetter('B.g1');
- helper.assertNoSetter('B.g2');
- });
-
- test('Setter usage', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- get g1 => null;
- get g2 => null;
- set g1(x) {}
- set g2(x) {}
-}
-class B {
- get g1 => null;
- get g2 => null;
- set g1(x) {}
- set g2(x) {}
-}
-main() {
- new A().g1 = 1;
-}
-''');
- helper.assertHasSetter('A.g1');
- helper.assertNoSetter('A.g2');
- helper.assertNoSetter('B.g1');
- helper.assertNoSetter('B.g2');
- helper.assertNoGetter('A.g1');
- helper.assertNoGetter('A.g2');
- helper.assertNoGetter('B.g1');
- helper.assertNoGetter('B.g2');
- });
-
- test('Field read', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- var f1;
- var f2;
-}
-class B {
- var f1;
- var f2;
-}
-main() {
- new A().f1;
-}
-''');
- helper.assertHasField('A.f1');
- helper.assertNoField('A.f2');
- helper.assertNoField('B.f1');
- helper.assertNoField('B.f2');
- });
-
- test('Field write', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- var f1;
- var f2;
-}
-class B {
- var f1;
- var f2;
-}
-main() {
- new A().f1 = 1;
-}
-''');
- helper.assertHasField('A.f1');
- helper.assertNoField('A.f2');
- helper.assertNoField('B.f1');
- helper.assertNoField('B.f2');
- });
-
- test('Ordinary constructor with initializer list', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- A() : x = f();
- var x;
- foo() {}
-}
-f() {}
-main() {
- new A().foo();
-}
-''');
- helper.assertHasMethod('A.foo');
- helper.assertHasFunction('f');
- });
-
- test('Redirecting constructor', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- A.a1() : this.a2();
- A.a2();
- foo() {}
-}
-main() {
- new A.a1().foo();
-}
-''');
- helper.assertHasMethod('A.foo');
- });
-
- test('Factory constructor', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- factory A() {
- return new B();
- }
- foo() {}
-}
-class B {
- B();
- foo() {}
-}
-main() {
- new A().foo();
-}
-''');
- helper.assertHasMethod('B.foo');
- helper.assertNoMethod('A.foo');
- });
-
- test('Redirecting factory constructor', () {
- var helper = new TreeShakerTestHelper('''
-class A {
- factory A() = B;
- foo() {}
-}
-class B {
- B();
- foo() {}
-}
-main() {
- new A().foo();
-}
-''');
- helper.assertHasMethod('B.foo');
- helper.assertNoMethod('A.foo');
- });
-}
-
-class TreeShakerTestHelper {
- /**
- * The name of the root file.
- */
- String rootFile = '/root.dart';
-
- /**
- * ClosedWorld that resulted from tree shaking.
- */
- ClosedWorld world;
-
- /**
- * Functions contained in [world], indexed by name.
- */
- Map<String, FunctionDeclaration> functions = <String, FunctionDeclaration>{};
-
- /**
- * Methods contained in [world], indexed by className.methodName.
- */
- Map<String, MethodDeclaration> methods = <String, MethodDeclaration>{};
-
- /**
- * Getters contained in [world], indexed by className.propertyName.
- */
- Map<String, MethodDeclaration> getters = <String, MethodDeclaration>{};
-
- /**
- * Setters contained in [world], indexed by className.propertyName.
- */
- Map<String, MethodDeclaration> setters = <String, MethodDeclaration>{};
-
- /**
- * Fields contained in [world], indexed by className.fieldName.
- */
- Map<String, VariableDeclaration> fields = <String, VariableDeclaration>{};
-
- /**
- * Top level variables contained in [world], indexed by name.
- */
- Map<String, VariableDeclaration> variables = <String, VariableDeclaration>{};
-
- /**
- * Classes instantiated in [world], indexed by name.
- */
- Map<String, ClassDeclaration> instantiatedClasses = <String,
- ClassDeclaration>{};
-
- /**
- * Create a TreeShakerTestHelper based on the given file contents.
- */
- TreeShakerTestHelper(String contents) {
- MemoryResourceProvider provider = new MemoryResourceProvider();
- DartSdk sdk = new MockSdk();
- Driver driver = new Driver(provider, sdk, NullSink.outputProvider);
- provider.newFile(rootFile, contents);
- Source rootSource = driver.setRoot(rootFile);
- FunctionElement entryPoint = driver.resolveEntryPoint(rootSource);
- world = driver.computeWorld(entryPoint);
- world.executableElements.forEach(
- (ExecutableElement element, Declaration node) {
- if (element is FunctionElement) {
- FunctionDeclaration declaration = node as FunctionDeclaration;
- expect(declaration, isNotNull);
- expect(declaration.element, equals(element));
- functions[element.name] = declaration;
- } else if (element is MethodElement) {
- MethodDeclaration declaration = node as MethodDeclaration;
- expect(declaration, isNotNull);
- expect(declaration.element, equals(element));
- methods['${element.enclosingElement.name}.${element.name}'] =
- declaration;
- } else if (element is PropertyAccessorElement) {
- MethodDeclaration declaration = node as MethodDeclaration;
- expect(declaration, isNotNull);
- expect(declaration.element, equals(element));
- if (declaration.isGetter) {
- getters['${element.enclosingElement.name}.${element.name}'] =
- declaration;
- } else if (declaration.isSetter) {
- setters['${element.enclosingElement.name}.${element.displayName}'] =
- declaration;
- } else {
- fail('Unexpected property accessor (neither getter nor setter)');
- }
- }
- });
- world.instantiatedClasses.forEach(
- (ClassElement element, ClassDeclaration declaration) {
- expect(declaration, isNotNull);
- expect(declaration.element, equals(element));
- instantiatedClasses[element.name] = declaration;
- });
- world.fields.forEach(
- (FieldElement element, VariableDeclaration declaration) {
- expect(declaration, isNotNull);
- expect(declaration.element, equals(element));
- fields['${element.enclosingElement.name}.${element.name}'] = declaration;
- });
- world.variables.forEach(
- (TopLevelVariableElement element, VariableDeclaration declaration) {
- expect(declaration, isNotNull);
- expect(declaration.element, equals(element));
- variables['${element.name}'] = declaration;
- });
- }
-
- /**
- * Asserts that [world] contains a field with the given qualified name.
- */
- void assertHasField(String qualifiedName) {
- expect(fields, contains(qualifiedName));
- }
-
- /**
- * Asserts that [world] contains a top level variable with the given name.
- */
- void assertHasVariable(String name) {
- expect(variables, contains(name));
- }
-
- /**
- * Asserts that [world] contains a top-level function with the given name.
- */
- void assertHasFunction(String name) {
- expect(functions, contains(name));
- }
-
- /**
- * Asserts that [world] contains a getter with the given qualified name.
- */
- void assertHasGetter(String qualifiedName) {
- expect(getters, contains(qualifiedName));
- }
-
- /**
- * Asserts that [world] contains a setter with the given qualified name.
- */
- void assertHasSetter(String qualifiedName) {
- expect(setters, contains(qualifiedName));
- }
-
- /**
- * Asserts that [world] instantiates a class with the given name.
- */
- void assertHasInstantiatedClass(String name) {
- expect(instantiatedClasses, contains(name));
- }
-
- /**
- * Asserts that [world] contains a method with the given qualified name.
- *
- * [qualifiedName] - the qualified name in form 'className.methodName'.
- */
- void assertHasMethod(String qualifiedName) {
- expect(methods, contains(qualifiedName));
- }
-
- /**
- * Asserts that [world] doesn't contain a field with the given qualified
- * name.
- */
- void assertNoField(String qualifiedName) {
- expect(fields, isNot(contains(qualifiedName)));
- }
-
- /**
- * Asserts that [world] doesn't contain a top level variable with the given
- * name.
- */
- void assertNoVariable(String name) {
- expect(variables, isNot(contains(name)));
- }
-
- /**
- * Asserts that [world] doesn't contain a top-level function with the given
- * name.
- */
- void assertNoFunction(String name) {
- expect(functions, isNot(contains(name)));
- }
-
- /**
- * Asserts that [world] doesn't contain a getter with the given qualified
- * name.
- */
- void assertNoGetter(String qualifiedName) {
- expect(getters, isNot(contains(qualifiedName)));
- }
-
- /**
- * Asserts that [world] doesn't contain a setter with the given qualified
- * name.
- */
- void assertNoSetter(String qualifiedName) {
- expect(setters, isNot(contains(qualifiedName)));
- }
-
- /**
- * Asserts that [world] doesn't instantiate a class with the given name.
- */
- void assertNoInstantiatedClass(String name) {
- expect(instantiatedClasses, isNot(contains(name)));
- }
-
- /**
- * Asserts that [world] doesn't contain a method with the given qualified
- * name.
- *
- * [qualifiedName] - the qualified name in form 'className.methodName'.
- */
- void assertNoMethod(String qualifiedName) {
- expect(methods, isNot(contains(qualifiedName)));
- }
-}
« no previous file with comments | « pkg/analyzer2dart/test/test_helper.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698