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

Side by Side Diff: pkg/analysis_server/test/analysis/notification_implemented_test.dart

Issue 1383043002: Stop defensively copying AST structures before resolution (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 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
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/task/dart.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 library test.analysis.notification.implemented; 5 library test.analysis.notification.implemented;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/protocol.dart'; 10 import 'package:analysis_server/src/protocol.dart';
(...skipping 19 matching lines...) Expand all
30 * Validates that there is an [ImplementedClass] at the offset of [search]. 30 * Validates that there is an [ImplementedClass] at the offset of [search].
31 * 31 *
32 * If [length] is not specified explicitly, then length of an identifier 32 * If [length] is not specified explicitly, then length of an identifier
33 * from [search] is used. 33 * from [search] is used.
34 */ 34 */
35 void assertHasImplementedClass(String search, [int length = -1]) { 35 void assertHasImplementedClass(String search, [int length = -1]) {
36 int offset = findOffset(search); 36 int offset = findOffset(search);
37 if (length == -1) { 37 if (length == -1) {
38 length = findIdentifierLength(search); 38 length = findIdentifierLength(search);
39 } 39 }
40 if (implementedClasses == null) {
41 fail('No notification of impemented classes was received');
42 }
40 for (ImplementedClass clazz in implementedClasses) { 43 for (ImplementedClass clazz in implementedClasses) {
41 if (clazz.offset == offset && clazz.length == length) { 44 if (clazz.offset == offset && clazz.length == length) {
42 return; 45 return;
43 } 46 }
44 } 47 }
45 fail('Expect to find an implemented class at $offset' 48 fail('Expect to find an implemented class at $offset'
46 ' in $implementedClasses'); 49 ' in $implementedClasses');
47 } 50 }
48 51
49 /** 52 /**
50 * Validates that there is an [ImplementedClass] at the offset of [search]. 53 * Validates that there is an [ImplementedClass] at the offset of [search].
51 * 54 *
52 * If [length] is not specified explicitly, then length of an identifier 55 * If [length] is not specified explicitly, then length of an identifier
53 * from [search] is used. 56 * from [search] is used.
54 */ 57 */
55 void assertHasImplementedMember(String search, [int length = -1]) { 58 void assertHasImplementedMember(String search, [int length = -1]) {
56 int offset = findOffset(search); 59 int offset = findOffset(search);
57 if (length == -1) { 60 if (length == -1) {
58 length = findIdentifierLength(search); 61 length = findIdentifierLength(search);
59 } 62 }
63 if (implementedMembers == null) {
64 fail('No notification of impemented members was received');
65 }
60 for (ImplementedMember member in implementedMembers) { 66 for (ImplementedMember member in implementedMembers) {
61 if (member.offset == offset && member.length == length) { 67 if (member.offset == offset && member.length == length) {
62 return; 68 return;
63 } 69 }
64 } 70 }
65 fail('Expect to find an implemented member at $offset' 71 fail('Expect to find an implemented member at $offset'
66 ' in $implementedMembers'); 72 ' in $implementedMembers');
67 } 73 }
68 74
69 /** 75 /**
70 * Validates that there is no an [ImplementedClass] at the offset of [search]. 76 * Validates that there is no an [ImplementedClass] at the offset of [search].
71 * 77 *
72 * If [length] is not specified explicitly, then length of an identifier 78 * If [length] is not specified explicitly, then length of an identifier
73 * from [search] is used. 79 * from [search] is used.
74 */ 80 */
75 void assertNoImplementedMember(String search, [int length = -1]) { 81 void assertNoImplementedMember(String search, [int length = -1]) {
76 int offset = findOffset(search); 82 int offset = findOffset(search);
77 if (length == -1) { 83 if (length == -1) {
78 length = findIdentifierLength(search); 84 length = findIdentifierLength(search);
79 } 85 }
86 if (implementedMembers == null) {
87 fail('No notification of impemented members was received');
88 }
80 for (ImplementedMember member in implementedMembers) { 89 for (ImplementedMember member in implementedMembers) {
81 if (member.offset == offset) { 90 if (member.offset == offset) {
82 fail('Unexpected implemented member at $offset' 91 fail('Unexpected implemented member at $offset'
83 ' in $implementedMembers'); 92 ' in $implementedMembers');
84 } 93 }
85 } 94 }
86 } 95 }
87 96
88 @override 97 @override
89 Index createIndex() { 98 Index createIndex() {
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 Future waitForNotification(int times) { 319 Future waitForNotification(int times) {
311 if (times == 0 || implementedClasses != null) { 320 if (times == 0 || implementedClasses != null) {
312 return new Future.value(); 321 return new Future.value();
313 } 322 }
314 return new Future.delayed( 323 return new Future.delayed(
315 new Duration(milliseconds:1), () => waitForNotification(times - 1)); 324 new Duration(milliseconds:1), () => waitForNotification(times - 1));
316 } 325 }
317 return waitForNotification(30000); 326 return waitForNotification(30000);
318 } 327 }
319 } 328 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/task/dart.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698