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

Side by Side Diff: pkg/analyzer2dart/test/identifier_semantics_test.dart

Issue 914613002: Revert "Add sharedfrontend package" (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/analyzer2dart/lib/src/tree_shaker.dart ('k') | pkg/compiler/lib/src/elements/elements.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'package:analyzer/analyzer.dart'; 5 import 'package:analyzer/analyzer.dart';
6 import 'package:analyzer/file_system/file_system.dart'; 6 import 'package:analyzer/file_system/file_system.dart';
7 import 'package:analyzer/file_system/memory_file_system.dart'; 7 import 'package:analyzer/file_system/memory_file_system.dart';
8 import 'package:analyzer/src/generated/element.dart'; 8 import 'package:analyzer/src/generated/element.dart';
9 import 'package:analyzer/src/generated/engine.dart'; 9 import 'package:analyzer/src/generated/engine.dart';
10 import 'package:analyzer/src/generated/sdk.dart'; 10 import 'package:analyzer/src/generated/sdk.dart';
11 import 'package:analyzer/src/generated/source.dart'; 11 import 'package:analyzer/src/generated/source.dart';
12 import 'package:analyzer/src/generated/source_io.dart'; 12 import 'package:analyzer/src/generated/source_io.dart';
13 import 'package:analyzer2dart/src/identifier_semantics.dart'; 13 import 'package:analyzer2dart/src/identifier_semantics.dart';
14 import 'package:unittest/unittest.dart'; 14 import 'package:unittest/unittest.dart';
15 import 'package:sharedfrontend/src/access_semantics.dart';
16 15
17 import 'mock_sdk.dart'; 16 import 'mock_sdk.dart';
18 17
19 main() { 18 main() {
20 test('Call function defined at top level', () { 19 test('Call function defined at top level', () {
21 Helper helper = new Helper(''' 20 Helper helper = new Helper('''
22 g() {} 21 g() {}
23 22
24 f() { 23 f() {
25 g(); 24 g();
(...skipping 2264 matching lines...) Expand 10 before | Expand all | Expand 10 after
2290 int count = 0; 2289 int count = 0;
2291 visitor.onAccess = (AstNode node, AccessSemantics semantics) { 2290 visitor.onAccess = (AstNode node, AccessSemantics semantics) {
2292 count++; 2291 count++;
2293 expect(node.toSource(), equals(expectedSource)); 2292 expect(node.toSource(), equals(expectedSource));
2294 expect(semantics.kind, equals(AccessKind.DYNAMIC)); 2293 expect(semantics.kind, equals(AccessKind.DYNAMIC));
2295 if (expectedTarget == null) { 2294 if (expectedTarget == null) {
2296 expect(semantics.target, isNull); 2295 expect(semantics.target, isNull);
2297 } else { 2296 } else {
2298 expect(semantics.target.toSource(), equals(expectedTarget)); 2297 expect(semantics.target.toSource(), equals(expectedTarget));
2299 } 2298 }
2300 expect(semantics.name, equals(expectedName)); 2299 expect(semantics.identifier.name, equals(expectedName));
2301 expect(semantics.element, isNull); 2300 expect(semantics.element, isNull);
2302 expect(semantics.classElement, isNull); 2301 expect(semantics.classElement, isNull);
2303 expect(semantics.isRead, equals(isRead)); 2302 expect(semantics.isRead, equals(isRead));
2304 expect(semantics.isWrite, equals(isWrite)); 2303 expect(semantics.isWrite, equals(isWrite));
2305 expect(semantics.isInvoke, equals(isInvoke)); 2304 expect(semantics.isInvoke, equals(isInvoke));
2306 }; 2305 };
2307 libraryElement.unit.accept(visitor); 2306 libraryElement.unit.accept(visitor);
2308 expect(count, equals(1)); 2307 expect(count, equals(1));
2309 } 2308 }
2310 2309
2311 /** 2310 /**
2312 * Verify that the node represented by [expectedSource] is classified as 2311 * Verify that the node represented by [expectedSource] is classified as
2313 * a local function invocation. 2312 * a local function invocation.
2314 */ 2313 */
2315 void checkLocalFunction(String expectedSource, String expectedName, 2314 void checkLocalFunction(String expectedSource, String expectedName,
2316 {bool isRead: false, bool isWrite: false, bool isInvoke: false}) { 2315 {bool isRead: false, bool isWrite: false, bool isInvoke: false}) {
2317 TestVisitor visitor = new TestVisitor(); 2316 TestVisitor visitor = new TestVisitor();
2318 int count = 0; 2317 int count = 0;
2319 visitor.onAccess = (AstNode node, AccessSemantics semantics) { 2318 visitor.onAccess = (AstNode node, AccessSemantics semantics) {
2320 count++; 2319 count++;
2321 expect(node.toSource(), equals(expectedSource)); 2320 expect(node.toSource(), equals(expectedSource));
2322 expect(semantics.kind, equals(AccessKind.LOCAL_FUNCTION)); 2321 expect(semantics.kind, equals(AccessKind.LOCAL_FUNCTION));
2323 expect(semantics.name, equals(expectedName)); 2322 expect(semantics.identifier.name, equals(expectedName));
2324 expect(displayName(semantics.element), equals(expectedName)); 2323 expect(semantics.element.displayName, equals(expectedName));
2325 expect(semantics.classElement, isNull); 2324 expect(semantics.classElement, isNull);
2326 expect(semantics.target, isNull); 2325 expect(semantics.target, isNull);
2327 expect(semantics.isRead, equals(isRead)); 2326 expect(semantics.isRead, equals(isRead));
2328 expect(semantics.isWrite, equals(isWrite)); 2327 expect(semantics.isWrite, equals(isWrite));
2329 expect(semantics.isInvoke, equals(isInvoke)); 2328 expect(semantics.isInvoke, equals(isInvoke));
2330 }; 2329 };
2331 libraryElement.unit.accept(visitor); 2330 libraryElement.unit.accept(visitor);
2332 expect(count, equals(1)); 2331 expect(count, equals(1));
2333 } 2332 }
2334 2333
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2384 */ 2383 */
2385 void checkStaticField(String expectedSource, String expectedClass, 2384 void checkStaticField(String expectedSource, String expectedClass,
2386 String expectedName, {bool isRead: false, bool isWrite: false, bool isInvo ke: 2385 String expectedName, {bool isRead: false, bool isWrite: false, bool isInvo ke:
2387 false}) { 2386 false}) {
2388 TestVisitor visitor = new TestVisitor(); 2387 TestVisitor visitor = new TestVisitor();
2389 int count = 0; 2388 int count = 0;
2390 visitor.onAccess = (Expression node, AccessSemantics semantics) { 2389 visitor.onAccess = (Expression node, AccessSemantics semantics) {
2391 count++; 2390 count++;
2392 expect(node.toSource(), equals(expectedSource)); 2391 expect(node.toSource(), equals(expectedSource));
2393 expect(semantics.kind, equals(AccessKind.STATIC_FIELD)); 2392 expect(semantics.kind, equals(AccessKind.STATIC_FIELD));
2394 expect(semantics.name, equals(expectedName)); 2393 expect(semantics.identifier.name, equals(expectedName));
2395 expect(displayName(semantics.element), equals(expectedName)); 2394 expect(semantics.element.displayName, equals(expectedName));
2396 if (expectedClass == null) { 2395 if (expectedClass == null) {
2397 expect(semantics.classElement, isNull); 2396 expect(semantics.classElement, isNull);
2398 } else { 2397 } else {
2399 expect(semantics.classElement, isNotNull); 2398 expect(semantics.classElement, isNotNull);
2400 expect(displayName(semantics.classElement), equals(expectedClass)); 2399 expect(semantics.classElement.displayName, equals(expectedClass));
2401 } 2400 }
2402 expect(semantics.target, isNull); 2401 expect(semantics.target, isNull);
2403 expect(semantics.isRead, equals(isRead)); 2402 expect(semantics.isRead, equals(isRead));
2404 expect(semantics.isWrite, equals(isWrite)); 2403 expect(semantics.isWrite, equals(isWrite));
2405 expect(semantics.isInvoke, equals(isInvoke)); 2404 expect(semantics.isInvoke, equals(isInvoke));
2406 }; 2405 };
2407 libraryElement.unit.accept(visitor); 2406 libraryElement.unit.accept(visitor);
2408 expect(count, equals(1)); 2407 expect(count, equals(1));
2409 } 2408 }
2410 2409
2411 /** 2410 /**
2412 * Verify that the node represented by [expectedSource] is classified as 2411 * Verify that the node represented by [expectedSource] is classified as
2413 * a static method. 2412 * a static method.
2414 */ 2413 */
2415 void checkStaticMethod(String expectedSource, String expectedClass, 2414 void checkStaticMethod(String expectedSource, String expectedClass,
2416 String expectedName, bool defined, {bool isRead: false, bool isWrite: fals e, 2415 String expectedName, bool defined, {bool isRead: false, bool isWrite: fals e,
2417 bool isInvoke: false}) { 2416 bool isInvoke: false}) {
2418 TestVisitor visitor = new TestVisitor(); 2417 TestVisitor visitor = new TestVisitor();
2419 int count = 0; 2418 int count = 0;
2420 visitor.onAccess = (AstNode node, AccessSemantics semantics) { 2419 visitor.onAccess = (AstNode node, AccessSemantics semantics) {
2421 count++; 2420 count++;
2422 expect(node.toSource(), equals(expectedSource)); 2421 expect(node.toSource(), equals(expectedSource));
2423 expect(semantics.kind, equals(AccessKind.STATIC_METHOD)); 2422 expect(semantics.kind, equals(AccessKind.STATIC_METHOD));
2424 expect(semantics.name, equals(expectedName)); 2423 expect(semantics.identifier.name, equals(expectedName));
2425 if (expectedClass == null) { 2424 if (expectedClass == null) {
2426 expect(semantics.classElement, isNull); 2425 expect(semantics.classElement, isNull);
2427 if (defined) { 2426 if (defined) {
2428 expect(semantics.element, new isInstanceOf<FunctionElement>()); 2427 expect(semantics.element, new isInstanceOf<FunctionElement>());
2429 } 2428 }
2430 } else { 2429 } else {
2431 expect(semantics.classElement, isNotNull); 2430 expect(semantics.classElement, isNotNull);
2432 expect(displayName(semantics.classElement), equals(expectedClass)); 2431 expect(semantics.classElement.displayName, equals(expectedClass));
2433 if (defined) { 2432 if (defined) {
2434 expect(semantics.element, new isInstanceOf<MethodElement>()); 2433 expect(semantics.element, new isInstanceOf<MethodElement>());
2435 } 2434 }
2436 } 2435 }
2437 if (defined) { 2436 if (defined) {
2438 expect(displayName(semantics.element), equals(expectedName)); 2437 expect(semantics.element.displayName, equals(expectedName));
2439 } else { 2438 } else {
2440 expect(semantics.element, isNull); 2439 expect(semantics.element, isNull);
2441 } 2440 }
2442 expect(semantics.target, isNull); 2441 expect(semantics.target, isNull);
2443 expect(semantics.isRead, equals(isRead)); 2442 expect(semantics.isRead, equals(isRead));
2444 expect(semantics.isWrite, equals(isWrite)); 2443 expect(semantics.isWrite, equals(isWrite));
2445 expect(semantics.isInvoke, equals(isInvoke)); 2444 expect(semantics.isInvoke, equals(isInvoke));
2446 }; 2445 };
2447 libraryElement.unit.accept(visitor); 2446 libraryElement.unit.accept(visitor);
2448 expect(count, equals(1)); 2447 expect(count, equals(1));
2449 } 2448 }
2450 2449
2451 /** 2450 /**
2452 * Verify that the node represented by [expectedSource] is classified as 2451 * Verify that the node represented by [expectedSource] is classified as
2453 * a static property access. 2452 * a static property access.
2454 */ 2453 */
2455 void checkStaticProperty(String expectedSource, String expectedClass, 2454 void checkStaticProperty(String expectedSource, String expectedClass,
2456 String expectedName, bool defined, {bool isRead: false, bool isWrite: fals e, 2455 String expectedName, bool defined, {bool isRead: false, bool isWrite: fals e,
2457 bool isInvoke: false}) { 2456 bool isInvoke: false}) {
2458 TestVisitor visitor = new TestVisitor(); 2457 TestVisitor visitor = new TestVisitor();
2459 int count = 0; 2458 int count = 0;
2460 visitor.onAccess = (Expression node, AccessSemantics semantics) { 2459 visitor.onAccess = (Expression node, AccessSemantics semantics) {
2461 count++; 2460 count++;
2462 expect(node.toSource(), equals(expectedSource)); 2461 expect(node.toSource(), equals(expectedSource));
2463 expect(semantics.kind, equals(AccessKind.STATIC_PROPERTY)); 2462 expect(semantics.kind, equals(AccessKind.STATIC_PROPERTY));
2464 expect(semantics.name, equals(expectedName)); 2463 expect(semantics.identifier.name, equals(expectedName));
2465 if (expectedClass == null) { 2464 if (expectedClass == null) {
2466 expect(semantics.classElement, isNull); 2465 expect(semantics.classElement, isNull);
2467 } else { 2466 } else {
2468 expect(semantics.classElement, isNotNull); 2467 expect(semantics.classElement, isNotNull);
2469 expect(displayName(semantics.classElement), equals(expectedClass)); 2468 expect(semantics.classElement.displayName, equals(expectedClass));
2470 } 2469 }
2471 if (defined) { 2470 if (defined) {
2472 expect(displayName(semantics.element), equals(expectedName)); 2471 expect(semantics.element.displayName, equals(expectedName));
2473 } else { 2472 } else {
2474 expect(semantics.element, isNull); 2473 expect(semantics.element, isNull);
2475 } 2474 }
2476 expect(semantics.target, isNull); 2475 expect(semantics.target, isNull);
2477 expect(semantics.isRead, equals(isRead)); 2476 expect(semantics.isRead, equals(isRead));
2478 expect(semantics.isWrite, equals(isWrite)); 2477 expect(semantics.isWrite, equals(isWrite));
2479 expect(semantics.isInvoke, equals(isInvoke)); 2478 expect(semantics.isInvoke, equals(isInvoke));
2480 }; 2479 };
2481 libraryElement.unit.accept(visitor); 2480 libraryElement.unit.accept(visitor);
2482 expect(count, equals(1)); 2481 expect(count, equals(1));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2528 } 2527 }
2529 2528
2530 @override 2529 @override
2531 visitSimpleIdentifier(SimpleIdentifier node) { 2530 visitSimpleIdentifier(SimpleIdentifier node) {
2532 AccessSemantics semantics = node.accept(ACCESS_SEMANTICS_VISITOR); 2531 AccessSemantics semantics = node.accept(ACCESS_SEMANTICS_VISITOR);
2533 if (semantics != null) { 2532 if (semantics != null) {
2534 onAccess(node, semantics); 2533 onAccess(node, semantics);
2535 } 2534 }
2536 } 2535 }
2537 } 2536 }
2538
2539 // TODO(johnniwinther): Remove this when the semantics of element names have
2540 // been resolved.
2541 /// Helper methods for accessing the [displayName] method without warning.
2542 String displayName(element) => element.displayName;
OLDNEW
« no previous file with comments | « pkg/analyzer2dart/lib/src/tree_shaker.dart ('k') | pkg/compiler/lib/src/elements/elements.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698