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

Side by Side Diff: pkg/analyzer/test/src/dart/analysis/base.dart

Issue 2521913004: Deoptimize Search - request a new resolved unit for local search. (Closed)
Patch Set: Created 4 years 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
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 'dart:async'; 5 import 'dart:async';
6 6
7 import 'package:analyzer/dart/element/element.dart';
8 import 'package:analyzer/dart/element/visitor.dart';
7 import 'package:analyzer/file_system/file_system.dart'; 9 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart'; 10 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/source/package_map_resolver.dart'; 11 import 'package:analyzer/source/package_map_resolver.dart';
10 import 'package:analyzer/src/dart/analysis/byte_store.dart'; 12 import 'package:analyzer/src/dart/analysis/byte_store.dart';
11 import 'package:analyzer/src/dart/analysis/driver.dart'; 13 import 'package:analyzer/src/dart/analysis/driver.dart';
12 import 'package:analyzer/src/dart/analysis/file_state.dart'; 14 import 'package:analyzer/src/dart/analysis/file_state.dart';
13 import 'package:analyzer/src/dart/analysis/status.dart'; 15 import 'package:analyzer/src/dart/analysis/status.dart';
14 import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl; 16 import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
15 import 'package:analyzer/src/generated/source.dart'; 17 import 'package:analyzer/src/generated/source.dart';
16 import 'package:test/test.dart'; 18 import 'package:test/test.dart';
17 19
18 import '../../context/mock_sdk.dart'; 20 import '../../context/mock_sdk.dart';
19 21
22 /**
23 * Finds an [Element] with the given [name].
24 */
25 Element findChildElement(Element root, String name, [ElementKind kind]) {
26 Element result = null;
27 root.accept(new _ElementVisitorFunctionWrapper((Element element) {
28 if (element.name != name) {
29 return;
30 }
31 if (kind != null && element.kind != kind) {
32 return;
33 }
34 result = element;
35 }));
36 return result;
37 }
38
39 typedef bool Predicate<E>(E argument);
40
41 /**
42 * A function to be called for every [Element].
43 */
44 typedef void _ElementVisitorFunction(Element element);
45
20 class BaseAnalysisDriverTest { 46 class BaseAnalysisDriverTest {
21 static final MockSdk sdk = new MockSdk(); 47 static final MockSdk sdk = new MockSdk();
22 48
23 final MemoryResourceProvider provider = new MemoryResourceProvider(); 49 final MemoryResourceProvider provider = new MemoryResourceProvider();
24 final ByteStore byteStore = new MemoryByteStore(); 50 final ByteStore byteStore = new MemoryByteStore();
25 final FileContentOverlay contentOverlay = new FileContentOverlay(); 51 final FileContentOverlay contentOverlay = new FileContentOverlay();
26 52
27 final StringBuffer logBuffer = new StringBuffer(); 53 final StringBuffer logBuffer = new StringBuffer();
28 PerformanceLog logger; 54 PerformanceLog logger;
29 55
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 if (status.isIdle) { 127 if (status.isIdle) {
102 idleStatusMonitor.notify(); 128 idleStatusMonitor.notify();
103 } 129 }
104 }); 130 });
105 driver.results.listen(allResults.add); 131 driver.results.listen(allResults.add);
106 } 132 }
107 133
108 String _p(String path) => provider.convertPath(path); 134 String _p(String path) => provider.convertPath(path);
109 } 135 }
110 136
137 /**
138 * Wraps an [_ElementVisitorFunction] into a [GeneralizingElementVisitor].
139 */
140 class _ElementVisitorFunctionWrapper extends GeneralizingElementVisitor {
141 final _ElementVisitorFunction function;
142
143 _ElementVisitorFunctionWrapper(this.function);
144
145 visitElement(Element element) {
146 function(element);
147 super.visitElement(element);
148 }
149 }
150
111 class _Monitor { 151 class _Monitor {
112 Completer<Null> _completer = new Completer<Null>(); 152 Completer<Null> _completer = new Completer<Null>();
113 153
114 Future<Null> get signal async { 154 Future<Null> get signal async {
115 await _completer.future; 155 await _completer.future;
116 _completer = new Completer<Null>(); 156 _completer = new Completer<Null>();
117 } 157 }
118 158
119 void notify() { 159 void notify() {
120 if (!_completer.isCompleted) { 160 if (!_completer.isCompleted) {
121 _completer.complete(null); 161 _completer.complete(null);
122 } 162 }
123 } 163 }
124 } 164 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/dart/analysis/search.dart ('k') | pkg/analyzer/test/src/dart/analysis/index_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698