| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.src.task.driver_test; | 5 library test.src.task.driver_test; |
| 6 | 6 |
| 7 import 'dart:async'; | |
| 8 import 'dart:collection'; | |
| 9 | |
| 10 import 'package:analyzer/src/cancelable_future.dart'; | |
| 11 import 'package:analyzer/src/context/cache.dart'; | 7 import 'package:analyzer/src/context/cache.dart'; |
| 12 import 'package:analyzer/src/generated/ast.dart'; | 8 import 'package:analyzer/src/context/context.dart'; |
| 13 import 'package:analyzer/src/generated/constant.dart'; | 9 import 'package:analyzer/src/generated/engine.dart' |
| 14 import 'package:analyzer/src/generated/element.dart'; | 10 hide AnalysisContextImpl, AnalysisTask; |
| 15 import 'package:analyzer/src/generated/engine.dart' hide AnalysisTask; | |
| 16 import 'package:analyzer/src/generated/error.dart'; | |
| 17 import 'package:analyzer/src/generated/html.dart'; | |
| 18 import 'package:analyzer/src/generated/java_engine.dart'; | 11 import 'package:analyzer/src/generated/java_engine.dart'; |
| 19 import 'package:analyzer/src/generated/resolver.dart'; | |
| 20 import 'package:analyzer/src/generated/source.dart'; | |
| 21 import 'package:analyzer/src/task/driver.dart'; | 12 import 'package:analyzer/src/task/driver.dart'; |
| 22 import 'package:analyzer/src/task/inputs.dart'; | 13 import 'package:analyzer/src/task/inputs.dart'; |
| 23 import 'package:analyzer/src/task/manager.dart'; | 14 import 'package:analyzer/src/task/manager.dart'; |
| 24 import 'package:analyzer/task/model.dart'; | 15 import 'package:analyzer/task/model.dart'; |
| 25 import 'package:unittest/unittest.dart'; | 16 import 'package:unittest/unittest.dart'; |
| 26 | 17 |
| 27 import '../../generated/resolver_test.dart'; | |
| 28 import '../../generated/test_support.dart'; | 18 import '../../generated/test_support.dart'; |
| 29 import '../../reflective_tests.dart'; | 19 import '../../reflective_tests.dart'; |
| 20 import '../context/abstract_context_test.dart'; |
| 30 import 'test_support.dart'; | 21 import 'test_support.dart'; |
| 31 | 22 |
| 32 main() { | 23 main() { |
| 33 groupSep = ' | '; | 24 groupSep = ' | '; |
| 34 runReflectiveTests(AnalysisDriverTest); | 25 runReflectiveTests(AnalysisDriverTest); |
| 35 runReflectiveTests(WorkOrderTest); | 26 runReflectiveTests(WorkOrderTest); |
| 36 runReflectiveTests(WorkItemTest); | 27 runReflectiveTests(WorkItemTest); |
| 37 } | 28 } |
| 38 | 29 |
| 39 @reflectiveTest | 30 @reflectiveTest |
| 40 class AnalysisDriverTest extends EngineTestCase { | 31 class AnalysisDriverTest extends AbstractContextTest { |
| 41 TaskManager manager; | 32 AnalysisContextImpl createAnalysisContext() { |
| 42 _TestContext context; | 33 return new _TestContext(); |
| 43 AnalysisDriver driver; | |
| 44 | |
| 45 void setUp() { | |
| 46 manager = new TaskManager(); | |
| 47 context = new _TestContext(); | |
| 48 driver = new AnalysisDriver(manager, context); | |
| 49 } | 34 } |
| 50 | 35 |
| 51 test_computeResult() { | 36 test_computeResult() { |
| 52 AnalysisTarget target = new TestSource(); | 37 AnalysisTarget target = new TestSource(); |
| 53 ResultDescriptor result = new ResultDescriptor('result', null); | 38 ResultDescriptor result = new ResultDescriptor('result', null); |
| 54 TestAnalysisTask task; | 39 TestAnalysisTask task; |
| 55 TaskDescriptor descriptor = new TaskDescriptor( | 40 TaskDescriptor descriptor = new TaskDescriptor( |
| 56 'task', (context, target) => task, (target) => {}, [result]); | 41 'task', (context, target) => task, (target) => {}, [result]); |
| 57 task = new TestAnalysisTask(context, target, descriptor: descriptor); | 42 task = new TestAnalysisTask(context, target, descriptor: descriptor); |
| 58 manager.addTaskDescriptor(descriptor); | 43 taskManager.addTaskDescriptor(descriptor); |
| 59 | 44 |
| 60 driver.computeResult(target, result); | 45 analysisDriver.computeResult(target, result); |
| 61 expect(context.getCacheEntry(target).getValue(result), 1); | 46 expect(context.getCacheEntry(target).getValue(result), 1); |
| 62 } | 47 } |
| 63 | 48 |
| 64 test_create() { | 49 test_create() { |
| 65 expect(driver, isNotNull); | 50 expect(analysisDriver, isNotNull); |
| 66 expect(driver.context, context); | 51 expect(analysisDriver.context, context); |
| 67 expect(driver.currentWorkOrder, isNull); | 52 expect(analysisDriver.currentWorkOrder, isNull); |
| 68 expect(driver.taskManager, manager); | 53 expect(analysisDriver.taskManager, taskManager); |
| 69 } | 54 } |
| 70 | 55 |
| 71 test_createNextWorkOrder_complete() { | 56 test_createNextWorkOrder_complete() { |
| 72 AnalysisTarget priorityTarget = new TestSource(); | 57 AnalysisTarget priorityTarget = new TestSource(); |
| 73 AnalysisTarget normalTarget = new TestSource(); | 58 AnalysisTarget normalTarget = new TestSource(); |
| 74 ResultDescriptor result = new ResultDescriptor('result', null); | 59 ResultDescriptor result = new ResultDescriptor('result', null); |
| 75 TaskDescriptor descriptor = new TaskDescriptor('task', | 60 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 76 (context, target) => new TestAnalysisTask(context, target), | 61 (context, target) => new TestAnalysisTask(context, target), |
| 77 (target) => {}, [result]); | 62 (target) => {}, [result]); |
| 78 manager.addGeneralResult(result); | 63 taskManager.addGeneralResult(result); |
| 79 manager.addTaskDescriptor(descriptor); | 64 taskManager.addTaskDescriptor(descriptor); |
| 80 context.priorityTargets.add(priorityTarget); | 65 context.priorityTargets.add(priorityTarget); |
| 81 context.getCacheEntry(priorityTarget).setValue(result, ''); | 66 context.getCacheEntry(priorityTarget).setValue( |
| 67 result, '', TargetedResult.EMPTY_LIST); |
| 82 context.explicitTargets.add(normalTarget); | 68 context.explicitTargets.add(normalTarget); |
| 83 context.getCacheEntry(priorityTarget).setValue(result, ''); | 69 context.getCacheEntry(priorityTarget).setValue( |
| 70 result, '', TargetedResult.EMPTY_LIST); |
| 84 | 71 |
| 85 expect(driver.createNextWorkOrder(), isNull); | 72 expect(analysisDriver.createNextWorkOrder(), isNull); |
| 86 } | 73 } |
| 87 | 74 |
| 88 test_createNextWorkOrder_normalTarget() { | 75 test_createNextWorkOrder_normalTarget() { |
| 89 AnalysisTarget priorityTarget = new TestSource(); | 76 AnalysisTarget priorityTarget = new TestSource(); |
| 90 AnalysisTarget normalTarget = new TestSource(); | 77 AnalysisTarget normalTarget = new TestSource(); |
| 91 ResultDescriptor result = new ResultDescriptor('result', null); | 78 ResultDescriptor result = new ResultDescriptor('result', null); |
| 92 TaskDescriptor descriptor = new TaskDescriptor('task', | 79 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 93 (context, target) => new TestAnalysisTask(context, target), | 80 (context, target) => new TestAnalysisTask(context, target), |
| 94 (target) => {}, [result]); | 81 (target) => {}, [result]); |
| 95 manager.addGeneralResult(result); | 82 taskManager.addGeneralResult(result); |
| 96 manager.addTaskDescriptor(descriptor); | 83 taskManager.addTaskDescriptor(descriptor); |
| 97 context.priorityTargets.add(priorityTarget); | 84 context.priorityTargets.add(priorityTarget); |
| 98 context.getCacheEntry(priorityTarget).setValue(result, ''); | 85 context.getCacheEntry(priorityTarget).setValue( |
| 86 result, '', TargetedResult.EMPTY_LIST); |
| 99 context.explicitTargets.add(normalTarget); | 87 context.explicitTargets.add(normalTarget); |
| 100 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID); | 88 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID); |
| 101 | 89 |
| 102 WorkOrder workOrder = driver.createNextWorkOrder(); | 90 WorkOrder workOrder = analysisDriver.createNextWorkOrder(); |
| 103 expect(workOrder, isNotNull); | 91 expect(workOrder, isNotNull); |
| 104 expect(workOrder.moveNext(), true); | 92 expect(workOrder.moveNext(), true); |
| 105 expect(workOrder.currentItem.target, normalTarget); | 93 expect(workOrder.currentItem.target, normalTarget); |
| 106 } | 94 } |
| 107 | 95 |
| 108 test_createNextWorkOrder_noTargets() { | 96 test_createNextWorkOrder_noTargets() { |
| 109 ResultDescriptor result = new ResultDescriptor('result', null); | 97 ResultDescriptor result = new ResultDescriptor('result', null); |
| 110 TaskDescriptor descriptor = new TaskDescriptor('task', | 98 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 111 (context, target) => new TestAnalysisTask(context, target), | 99 (context, target) => new TestAnalysisTask(context, target), |
| 112 (target) => {}, [result]); | 100 (target) => {}, [result]); |
| 113 manager.addGeneralResult(result); | 101 taskManager.addGeneralResult(result); |
| 114 manager.addTaskDescriptor(descriptor); | 102 taskManager.addTaskDescriptor(descriptor); |
| 115 | 103 |
| 116 expect(driver.createNextWorkOrder(), isNull); | 104 expect(analysisDriver.createNextWorkOrder(), isNull); |
| 117 } | 105 } |
| 118 | 106 |
| 119 test_createNextWorkOrder_priorityTarget() { | 107 test_createNextWorkOrder_priorityTarget() { |
| 120 AnalysisTarget priorityTarget = new TestSource(); | 108 AnalysisTarget priorityTarget = new TestSource(); |
| 121 AnalysisTarget normalTarget = new TestSource(); | 109 AnalysisTarget normalTarget = new TestSource(); |
| 122 ResultDescriptor result = new ResultDescriptor('result', null); | 110 ResultDescriptor result = new ResultDescriptor('result', null); |
| 123 TaskDescriptor descriptor = new TaskDescriptor('task', | 111 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 124 (context, target) => new TestAnalysisTask(context, target), | 112 (context, target) => new TestAnalysisTask(context, target), |
| 125 (target) => {}, [result]); | 113 (target) => {}, [result]); |
| 126 manager.addGeneralResult(result); | 114 taskManager.addGeneralResult(result); |
| 127 manager.addTaskDescriptor(descriptor); | 115 taskManager.addTaskDescriptor(descriptor); |
| 128 context.priorityTargets.add(priorityTarget); | 116 context.priorityTargets.add(priorityTarget); |
| 129 context.getCacheEntry(priorityTarget).setState(result, CacheState.INVALID); | 117 context.getCacheEntry(priorityTarget).setState(result, CacheState.INVALID); |
| 130 context.explicitTargets.add(normalTarget); | 118 context.explicitTargets.add(normalTarget); |
| 131 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID); | 119 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID); |
| 132 | 120 |
| 133 WorkOrder workOrder = driver.createNextWorkOrder(); | 121 WorkOrder workOrder = analysisDriver.createNextWorkOrder(); |
| 134 expect(workOrder, isNotNull); | 122 expect(workOrder, isNotNull); |
| 135 expect(workOrder.moveNext(), true); | 123 expect(workOrder.moveNext(), true); |
| 136 expect(workOrder.currentItem.target, priorityTarget); | 124 expect(workOrder.currentItem.target, priorityTarget); |
| 137 } | 125 } |
| 138 | 126 |
| 139 test_createWorkOrderForResult_error() { | 127 test_createWorkOrderForResult_error() { |
| 140 AnalysisTarget target = new TestSource(); | 128 AnalysisTarget target = new TestSource(); |
| 141 ResultDescriptor result = new ResultDescriptor('result', null); | 129 ResultDescriptor result = new ResultDescriptor('result', null); |
| 142 CaughtException exception = new CaughtException(null, null); | 130 CaughtException exception = new CaughtException(null, null); |
| 143 context.getCacheEntry(target).setErrorState( | 131 context.getCacheEntry(target).setErrorState( |
| 144 exception, <ResultDescriptor>[result]); | 132 exception, <ResultDescriptor>[result]); |
| 145 | 133 |
| 146 expect(driver.createWorkOrderForResult(target, result), isNull); | 134 expect(analysisDriver.createWorkOrderForResult(target, result), isNull); |
| 147 } | 135 } |
| 148 | 136 |
| 149 test_createWorkOrderForResult_inProcess() { | 137 test_createWorkOrderForResult_inProcess() { |
| 150 AnalysisTarget target = new TestSource(); | 138 AnalysisTarget target = new TestSource(); |
| 151 ResultDescriptor result = new ResultDescriptor('result', null); | 139 ResultDescriptor result = new ResultDescriptor('result', null); |
| 152 context.getCacheEntry(target).setState(result, CacheState.IN_PROCESS); | 140 context.getCacheEntry(target).setState(result, CacheState.IN_PROCESS); |
| 153 | 141 |
| 154 expect(driver.createWorkOrderForResult(target, result), isNull); | 142 expect(analysisDriver.createWorkOrderForResult(target, result), isNull); |
| 155 } | 143 } |
| 156 | 144 |
| 157 test_createWorkOrderForResult_invalid() { | 145 test_createWorkOrderForResult_invalid() { |
| 158 AnalysisTarget target = new TestSource(); | 146 AnalysisTarget target = new TestSource(); |
| 159 ResultDescriptor result = new ResultDescriptor('result', null); | 147 ResultDescriptor result = new ResultDescriptor('result', null); |
| 160 TaskDescriptor descriptor = new TaskDescriptor('task', | 148 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 161 (context, target) => new TestAnalysisTask(context, target), | 149 (context, target) => new TestAnalysisTask(context, target), |
| 162 (target) => {}, [result]); | 150 (target) => {}, [result]); |
| 163 manager.addTaskDescriptor(descriptor); | 151 taskManager.addTaskDescriptor(descriptor); |
| 164 context.getCacheEntry(target).setState(result, CacheState.INVALID); | 152 context.getCacheEntry(target).setState(result, CacheState.INVALID); |
| 165 | 153 |
| 166 WorkOrder workOrder = driver.createWorkOrderForResult(target, result); | 154 WorkOrder workOrder = |
| 155 analysisDriver.createWorkOrderForResult(target, result); |
| 167 expect(workOrder, isNotNull); | 156 expect(workOrder, isNotNull); |
| 168 } | 157 } |
| 169 | 158 |
| 170 test_createWorkOrderForResult_valid() { | 159 test_createWorkOrderForResult_valid() { |
| 171 AnalysisTarget target = new TestSource(); | 160 AnalysisTarget target = new TestSource(); |
| 172 ResultDescriptor result = new ResultDescriptor('result', null); | 161 ResultDescriptor result = new ResultDescriptor('result', null); |
| 173 context.getCacheEntry(target).setValue(result, ''); | 162 context.getCacheEntry(target).setValue( |
| 163 result, '', TargetedResult.EMPTY_LIST); |
| 174 | 164 |
| 175 expect(driver.createWorkOrderForResult(target, result), isNull); | 165 expect(analysisDriver.createWorkOrderForResult(target, result), isNull); |
| 176 } | 166 } |
| 177 | 167 |
| 178 test_createWorkOrderForTarget_complete_generalTarget_generalResult() { | 168 test_createWorkOrderForTarget_complete_generalTarget_generalResult() { |
| 179 _createWorkOrderForTarget(true, false, false); | 169 _createWorkOrderForTarget(true, false, false); |
| 180 } | 170 } |
| 181 | 171 |
| 182 test_createWorkOrderForTarget_complete_generalTarget_priorityResult() { | 172 test_createWorkOrderForTarget_complete_generalTarget_priorityResult() { |
| 183 _createWorkOrderForTarget(true, false, true); | 173 _createWorkOrderForTarget(true, false, true); |
| 184 } | 174 } |
| 185 | 175 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 207 _createWorkOrderForTarget(false, true, true); | 197 _createWorkOrderForTarget(false, true, true); |
| 208 } | 198 } |
| 209 | 199 |
| 210 test_performAnalysisTask() { | 200 test_performAnalysisTask() { |
| 211 AnalysisTarget target = new TestSource(); | 201 AnalysisTarget target = new TestSource(); |
| 212 ResultDescriptor result = new ResultDescriptor('result', null); | 202 ResultDescriptor result = new ResultDescriptor('result', null); |
| 213 TestAnalysisTask task; | 203 TestAnalysisTask task; |
| 214 TaskDescriptor descriptor = new TaskDescriptor( | 204 TaskDescriptor descriptor = new TaskDescriptor( |
| 215 'task', (context, target) => task, (target) => {}, [result]); | 205 'task', (context, target) => task, (target) => {}, [result]); |
| 216 task = new TestAnalysisTask(context, target, descriptor: descriptor); | 206 task = new TestAnalysisTask(context, target, descriptor: descriptor); |
| 217 manager.addTaskDescriptor(descriptor); | 207 taskManager.addTaskDescriptor(descriptor); |
| 218 manager.addGeneralResult(result); | 208 taskManager.addGeneralResult(result); |
| 219 context.priorityTargets.add(target); | 209 context.priorityTargets.add(target); |
| 220 | 210 |
| 221 expect(driver.performAnalysisTask(), true); | 211 expect(analysisDriver.performAnalysisTask(), true); |
| 222 expect(driver.performAnalysisTask(), true); | 212 expect(analysisDriver.performAnalysisTask(), true); |
| 223 expect(driver.performAnalysisTask(), false); | 213 expect(analysisDriver.performAnalysisTask(), false); |
| 224 } | 214 } |
| 225 | 215 |
| 226 test_performAnalysisTask_infiniteLoop() { | 216 test_performAnalysisTask_infiniteLoop() { |
| 227 AnalysisTarget target = new TestSource(); | 217 AnalysisTarget target = new TestSource(); |
| 228 ResultDescriptor resultA = new ResultDescriptor('resultA', -1); | 218 ResultDescriptor resultA = new ResultDescriptor('resultA', -1); |
| 229 ResultDescriptor resultB = new ResultDescriptor('resultB', -2); | 219 ResultDescriptor resultB = new ResultDescriptor('resultB', -2); |
| 230 // configure tasks | 220 // configure tasks |
| 231 TestAnalysisTask task1; | 221 TestAnalysisTask task1; |
| 232 TestAnalysisTask task2; | 222 TestAnalysisTask task2; |
| 233 TaskDescriptor descriptor1 = new TaskDescriptor('task1', | 223 TaskDescriptor descriptor1 = new TaskDescriptor('task1', |
| 234 (context, target) => task1, (target) => { | 224 (context, target) => task1, (target) => { |
| 235 'inputB': new SimpleTaskInput<int>(target, resultB) | 225 'inputB': new SimpleTaskInput<int>(target, resultB) |
| 236 }, [resultA]); | 226 }, [resultA]); |
| 237 TaskDescriptor descriptor2 = new TaskDescriptor('task2', | 227 TaskDescriptor descriptor2 = new TaskDescriptor('task2', |
| 238 (context, target) => task2, (target) => { | 228 (context, target) => task2, (target) => { |
| 239 'inputA': new SimpleTaskInput<int>(target, resultA) | 229 'inputA': new SimpleTaskInput<int>(target, resultA) |
| 240 }, [resultB]); | 230 }, [resultB]); |
| 241 task1 = new TestAnalysisTask(context, target, descriptor: descriptor1); | 231 task1 = new TestAnalysisTask(context, target, descriptor: descriptor1); |
| 242 task2 = new TestAnalysisTask(context, target, descriptor: descriptor2); | 232 task2 = new TestAnalysisTask(context, target, descriptor: descriptor2); |
| 243 manager.addTaskDescriptor(descriptor1); | 233 taskManager.addTaskDescriptor(descriptor1); |
| 244 manager.addTaskDescriptor(descriptor2); | 234 taskManager.addTaskDescriptor(descriptor2); |
| 245 context.explicitTargets.add(target); | 235 context.explicitTargets.add(target); |
| 246 manager.addGeneralResult(resultB); | 236 taskManager.addGeneralResult(resultB); |
| 247 // prepare work order | 237 // prepare work order |
| 248 expect(driver.performAnalysisTask(), true); | 238 expect(analysisDriver.performAnalysisTask(), true); |
| 249 expect(driver.performAnalysisTask(), true); | 239 expect(analysisDriver.performAnalysisTask(), true); |
| 250 CaughtException exception = context.getCacheEntry(target).exception; | 240 CaughtException exception = context.getCacheEntry(target).exception; |
| 251 expect(exception, isNotNull); | 241 expect(exception, isNotNull); |
| 252 expect(exception.exception, new isInstanceOf<InfiniteTaskLoopException>()); | 242 expect(exception.exception, new isInstanceOf<InfiniteTaskLoopException>()); |
| 253 } | 243 } |
| 254 | 244 |
| 255 test_performAnalysisTask_inputsFirst() { | 245 test_performAnalysisTask_inputsFirst() { |
| 256 AnalysisTarget target = new TestSource(); | 246 AnalysisTarget target = new TestSource(); |
| 257 ResultDescriptor resultA = new ResultDescriptor('resultA', -1); | 247 ResultDescriptor resultA = new ResultDescriptor('resultA', -1); |
| 258 ResultDescriptor resultB = new ResultDescriptor('resultB', -2); | 248 ResultDescriptor resultB = new ResultDescriptor('resultB', -2); |
| 259 // configure tasks | 249 // configure tasks |
| 260 TestAnalysisTask task1; | 250 TestAnalysisTask task1; |
| 261 TestAnalysisTask task2; | 251 TestAnalysisTask task2; |
| 262 TaskDescriptor descriptor1 = new TaskDescriptor( | 252 TaskDescriptor descriptor1 = new TaskDescriptor( |
| 263 'task1', (context, target) => task1, (target) => {}, [resultA]); | 253 'task1', (context, target) => task1, (target) => {}, [resultA]); |
| 264 TaskDescriptor descriptor2 = new TaskDescriptor('task2', | 254 TaskDescriptor descriptor2 = new TaskDescriptor('task2', |
| 265 (context, target) => task2, (target) => { | 255 (context, target) => task2, (target) => { |
| 266 'inputA': new SimpleTaskInput<int>(target, resultA) | 256 'inputA': new SimpleTaskInput<int>(target, resultA) |
| 267 }, [resultB]); | 257 }, [resultB]); |
| 268 task1 = new TestAnalysisTask(context, target, | 258 task1 = new TestAnalysisTask(context, target, |
| 269 descriptor: descriptor1, results: [resultA], value: 10); | 259 descriptor: descriptor1, results: [resultA], value: 10); |
| 270 task2 = new TestAnalysisTask(context, target, | 260 task2 = new TestAnalysisTask(context, target, |
| 271 descriptor: descriptor2, value: 20); | 261 descriptor: descriptor2, value: 20); |
| 272 manager.addTaskDescriptor(descriptor1); | 262 taskManager.addTaskDescriptor(descriptor1); |
| 273 manager.addTaskDescriptor(descriptor2); | 263 taskManager.addTaskDescriptor(descriptor2); |
| 274 context.explicitTargets.add(target); | 264 context.explicitTargets.add(target); |
| 275 manager.addGeneralResult(resultB); | 265 taskManager.addGeneralResult(resultB); |
| 276 // prepare work order | 266 // prepare work order |
| 277 expect(driver.performAnalysisTask(), true); | 267 expect(analysisDriver.performAnalysisTask(), true); |
| 278 expect(context.getCacheEntry(target).getValue(resultA), -1); | 268 expect(context.getCacheEntry(target).getValue(resultA), -1); |
| 279 expect(context.getCacheEntry(target).getValue(resultB), -2); | 269 expect(context.getCacheEntry(target).getValue(resultB), -2); |
| 280 // compute resultA | 270 // compute resultA |
| 281 expect(driver.performAnalysisTask(), true); | 271 expect(analysisDriver.performAnalysisTask(), true); |
| 282 expect(context.getCacheEntry(target).getValue(resultA), 10); | 272 expect(context.getCacheEntry(target).getValue(resultA), 10); |
| 283 expect(context.getCacheEntry(target).getValue(resultB), -2); | 273 expect(context.getCacheEntry(target).getValue(resultB), -2); |
| 284 // compute resultB | 274 // compute resultB |
| 285 expect(driver.performAnalysisTask(), true); | 275 expect(analysisDriver.performAnalysisTask(), true); |
| 286 expect(context.getCacheEntry(target).getValue(resultA), 10); | 276 expect(context.getCacheEntry(target).getValue(resultA), 10); |
| 287 expect(context.getCacheEntry(target).getValue(resultB), 20); | 277 expect(context.getCacheEntry(target).getValue(resultB), 20); |
| 288 // done | 278 // done |
| 289 expect(driver.performAnalysisTask(), false); | 279 expect(analysisDriver.performAnalysisTask(), false); |
| 290 } | 280 } |
| 291 | 281 |
| 292 test_performWorkItem_exceptionInTask() { | 282 test_performWorkItem_exceptionInTask() { |
| 293 AnalysisTarget target = new TestSource(); | 283 AnalysisTarget target = new TestSource(); |
| 294 ResultDescriptor result = new ResultDescriptor('result', null); | 284 ResultDescriptor result = new ResultDescriptor('result', null); |
| 295 CaughtException exception = | 285 CaughtException exception = |
| 296 new CaughtException(new AnalysisException(), null); | 286 new CaughtException(new AnalysisException(), null); |
| 297 TestAnalysisTask task; | 287 TestAnalysisTask task; |
| 298 TaskDescriptor descriptor = new TaskDescriptor( | 288 TaskDescriptor descriptor = new TaskDescriptor( |
| 299 'task', (context, target) => task, (target) => {}, [result]); | 289 'task', (context, target) => task, (target) => {}, [result]); |
| 300 task = new TestAnalysisTask(context, target, | 290 task = new TestAnalysisTask(context, target, |
| 301 descriptor: descriptor, exception: exception); | 291 descriptor: descriptor, exception: exception); |
| 302 WorkItem item = new WorkItem(context, target, descriptor); | 292 WorkItem item = new WorkItem(context, target, descriptor); |
| 303 | 293 |
| 304 driver.performWorkItem(item); | 294 analysisDriver.performWorkItem(item); |
| 305 CacheEntry targetEntry = context.getCacheEntry(item.target); | 295 CacheEntry targetEntry = context.getCacheEntry(item.target); |
| 306 expect(targetEntry.exception, exception); | 296 expect(targetEntry.exception, exception); |
| 307 expect(targetEntry.getState(result), CacheState.ERROR); | 297 expect(targetEntry.getState(result), CacheState.ERROR); |
| 308 } | 298 } |
| 309 | 299 |
| 310 test_performWorkItem_noException() { | 300 test_performWorkItem_noException() { |
| 311 AnalysisTarget target = new TestSource(); | 301 AnalysisTarget target = new TestSource(); |
| 312 ResultDescriptor result = new ResultDescriptor('result', null); | 302 ResultDescriptor result = new ResultDescriptor('result', null); |
| 313 TestAnalysisTask task; | 303 TestAnalysisTask task; |
| 314 TaskDescriptor descriptor = new TaskDescriptor( | 304 TaskDescriptor descriptor = new TaskDescriptor( |
| 315 'task', (context, target) => task, (target) => {}, [result]); | 305 'task', (context, target) => task, (target) => {}, [result]); |
| 316 task = new TestAnalysisTask(context, target, descriptor: descriptor); | 306 task = new TestAnalysisTask(context, target, descriptor: descriptor); |
| 317 WorkItem item = new WorkItem(context, target, descriptor); | 307 WorkItem item = new WorkItem(context, target, descriptor); |
| 318 | 308 |
| 319 driver.performWorkItem(item); | 309 analysisDriver.performWorkItem(item); |
| 320 CacheEntry targetEntry = context.getCacheEntry(item.target); | 310 CacheEntry targetEntry = context.getCacheEntry(item.target); |
| 321 expect(targetEntry.exception, isNull); | 311 expect(targetEntry.exception, isNull); |
| 322 expect(targetEntry.getState(result), CacheState.VALID); | 312 expect(targetEntry.getState(result), CacheState.VALID); |
| 323 } | 313 } |
| 324 | 314 |
| 325 test_performWorkItem_preExistingException() { | 315 test_performWorkItem_preExistingException() { |
| 326 AnalysisTarget target = new TestSource(); | 316 AnalysisTarget target = new TestSource(); |
| 327 ResultDescriptor result = new ResultDescriptor('result', null); | 317 ResultDescriptor result = new ResultDescriptor('result', null); |
| 328 TaskDescriptor descriptor = new TaskDescriptor('task', | 318 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 329 (context, target) => new TestAnalysisTask(context, target), | 319 (context, target) => new TestAnalysisTask(context, target), |
| 330 (target) => {}, [result]); | 320 (target) => {}, [result]); |
| 331 CaughtException exception = | 321 CaughtException exception = |
| 332 new CaughtException(new AnalysisException(), null); | 322 new CaughtException(new AnalysisException(), null); |
| 333 WorkItem item = new WorkItem(context, target, descriptor); | 323 WorkItem item = new WorkItem(context, target, descriptor); |
| 334 item.exception = exception; | 324 item.exception = exception; |
| 335 | 325 |
| 336 driver.performWorkItem(item); | 326 analysisDriver.performWorkItem(item); |
| 337 CacheEntry targetEntry = context.getCacheEntry(item.target); | 327 CacheEntry targetEntry = context.getCacheEntry(item.target); |
| 338 expect(targetEntry.exception, exception); | 328 expect(targetEntry.exception, exception); |
| 339 expect(targetEntry.getState(result), CacheState.ERROR); | 329 expect(targetEntry.getState(result), CacheState.ERROR); |
| 340 } | 330 } |
| 341 | 331 |
| 342 test_reset() { | 332 test_reset() { |
| 343 ResultDescriptor inputResult = new ResultDescriptor('input', null); | 333 ResultDescriptor inputResult = new ResultDescriptor('input', null); |
| 344 TaskDescriptor descriptor = new TaskDescriptor('task', | 334 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 345 (context, target) => new TestAnalysisTask(context, target), | 335 (context, target) => new TestAnalysisTask(context, target), |
| 346 (target) => {'one': inputResult.of(target)}, | 336 (target) => {'one': inputResult.of(target)}, |
| 347 [new ResultDescriptor('output', null)]); | 337 [new ResultDescriptor('output', null)]); |
| 348 driver.currentWorkOrder = | 338 analysisDriver.currentWorkOrder = |
| 349 new WorkOrder(manager, new WorkItem(null, null, descriptor)); | 339 new WorkOrder(taskManager, new WorkItem(null, null, descriptor)); |
| 350 | 340 |
| 351 driver.reset(); | 341 analysisDriver.reset(); |
| 352 expect(driver.currentWorkOrder, isNull); | 342 expect(analysisDriver.currentWorkOrder, isNull); |
| 353 } | 343 } |
| 354 | 344 |
| 355 /** | 345 /** |
| 356 * [complete] is `true` if the value of the result has already been computed. | 346 * [complete] is `true` if the value of the result has already been computed. |
| 357 * [priorityTarget] is `true` if the target is in the list of priority | 347 * [priorityTarget] is `true` if the target is in the list of priority |
| 358 * targets. | 348 * targets. |
| 359 * [priorityResult] is `true` if the result should only be computed for | 349 * [priorityResult] is `true` if the result should only be computed for |
| 360 * priority targets. | 350 * priority targets. |
| 361 */ | 351 */ |
| 362 _createWorkOrderForTarget( | 352 _createWorkOrderForTarget( |
| 363 bool complete, bool priorityTarget, bool priorityResult) { | 353 bool complete, bool priorityTarget, bool priorityResult) { |
| 364 AnalysisTarget target = new TestSource(); | 354 AnalysisTarget target = new TestSource(); |
| 365 ResultDescriptor result = new ResultDescriptor('result', null); | 355 ResultDescriptor result = new ResultDescriptor('result', null); |
| 366 TaskDescriptor descriptor = new TaskDescriptor('task', | 356 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 367 (context, target) => new TestAnalysisTask(context, target), | 357 (context, target) => new TestAnalysisTask(context, target), |
| 368 (target) => {}, [result]); | 358 (target) => {}, [result]); |
| 369 if (priorityResult) { | 359 if (priorityResult) { |
| 370 manager.addPriorityResult(result); | 360 taskManager.addPriorityResult(result); |
| 371 } else { | 361 } else { |
| 372 manager.addGeneralResult(result); | 362 taskManager.addGeneralResult(result); |
| 373 } | 363 } |
| 374 manager.addTaskDescriptor(descriptor); | 364 taskManager.addTaskDescriptor(descriptor); |
| 375 if (priorityTarget) { | 365 if (priorityTarget) { |
| 376 context.priorityTargets.add(target); | 366 context.priorityTargets.add(target); |
| 377 } else { | 367 } else { |
| 378 context.explicitTargets.add(target); | 368 context.explicitTargets.add(target); |
| 379 } | 369 } |
| 380 if (complete) { | 370 if (complete) { |
| 381 context.getCacheEntry(target).setValue(result, ''); | 371 context.getCacheEntry(target).setValue( |
| 372 result, '', TargetedResult.EMPTY_LIST); |
| 382 } else { | 373 } else { |
| 383 context.getCacheEntry(target).setState(result, CacheState.INVALID); | 374 context.getCacheEntry(target).setState(result, CacheState.INVALID); |
| 384 } | 375 } |
| 385 | 376 |
| 386 WorkOrder workOrder = | 377 WorkOrder workOrder = |
| 387 driver.createWorkOrderForTarget(target, priorityTarget); | 378 analysisDriver.createWorkOrderForTarget(target, priorityTarget); |
| 388 if (complete) { | 379 if (complete) { |
| 389 expect(workOrder, isNull); | 380 expect(workOrder, isNull); |
| 390 } else if (priorityResult) { | 381 } else if (priorityResult) { |
| 391 expect(workOrder, priorityTarget ? isNotNull : isNull); | 382 expect(workOrder, priorityTarget ? isNotNull : isNull); |
| 392 } else { | 383 } else { |
| 393 expect(workOrder, isNotNull); | 384 expect(workOrder, isNotNull); |
| 394 } | 385 } |
| 395 } | 386 } |
| 396 } | 387 } |
| 397 | 388 |
| 398 @reflectiveTest | 389 @reflectiveTest |
| 399 class WorkItemTest extends EngineTestCase { | 390 class WorkItemTest extends EngineTestCase { |
| 400 test_buildTask_complete() { | 391 test_buildTask_complete() { |
| 401 AnalysisContext context = new _TestContext(); | 392 AnalysisContext context = new AnalysisContextImpl(); |
| 402 AnalysisTarget target = new TestSource(); | 393 AnalysisTarget target = new TestSource(); |
| 403 TaskDescriptor descriptor = new TaskDescriptor('task', | 394 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 404 (context, target) => new TestAnalysisTask(context, target), | 395 (context, target) => new TestAnalysisTask(context, target), |
| 405 (target) => {}, [new ResultDescriptor('output', null)]); | 396 (target) => {}, [new ResultDescriptor('output', null)]); |
| 406 WorkItem item = new WorkItem(context, target, descriptor); | 397 WorkItem item = new WorkItem(context, target, descriptor); |
| 407 AnalysisTask task = item.buildTask(); | 398 AnalysisTask task = item.buildTask(); |
| 408 expect(task, isNotNull); | 399 expect(task, isNotNull); |
| 409 } | 400 } |
| 410 | 401 |
| 411 test_buildTask_incomplete() { | 402 test_buildTask_incomplete() { |
| 412 AnalysisContext context = new _TestContext(); | 403 AnalysisContext context = new AnalysisContextImpl(); |
| 413 AnalysisTarget target = new TestSource(); | 404 AnalysisTarget target = new TestSource(); |
| 414 ResultDescriptor inputResult = new ResultDescriptor('input', null); | 405 ResultDescriptor inputResult = new ResultDescriptor('input', null); |
| 415 List<ResultDescriptor> outputResults = | 406 List<ResultDescriptor> outputResults = |
| 416 <ResultDescriptor>[new ResultDescriptor('output', null)]; | 407 <ResultDescriptor>[new ResultDescriptor('output', null)]; |
| 417 TaskDescriptor descriptor = new TaskDescriptor('task', (context, target) => | 408 TaskDescriptor descriptor = new TaskDescriptor('task', (context, target) => |
| 418 new TestAnalysisTask(context, target, results: outputResults), | 409 new TestAnalysisTask(context, target, results: outputResults), |
| 419 (target) => {'one': inputResult.of(target)}, outputResults); | 410 (target) => {'one': inputResult.of(target)}, outputResults); |
| 420 WorkItem item = new WorkItem(context, target, descriptor); | 411 WorkItem item = new WorkItem(context, target, descriptor); |
| 421 expect(() => item.buildTask(), throwsStateError); | 412 expect(() => item.buildTask(), throwsStateError); |
| 422 } | 413 } |
| 423 | 414 |
| 424 test_create() { | 415 test_create() { |
| 425 AnalysisContext context = new _TestContext(); | 416 AnalysisContext context = new AnalysisContextImpl(); |
| 426 AnalysisTarget target = new TestSource(); | 417 AnalysisTarget target = new TestSource(); |
| 427 TaskDescriptor descriptor = new TaskDescriptor( | 418 TaskDescriptor descriptor = new TaskDescriptor( |
| 428 'task', null, (target) => {}, [new ResultDescriptor('result', null)]); | 419 'task', null, (target) => {}, [new ResultDescriptor('result', null)]); |
| 429 WorkItem item = new WorkItem(context, target, descriptor); | 420 WorkItem item = new WorkItem(context, target, descriptor); |
| 430 expect(item, isNotNull); | 421 expect(item, isNotNull); |
| 431 expect(item.context, context); | 422 expect(item.context, context); |
| 432 expect(item.descriptor, descriptor); | 423 expect(item.descriptor, descriptor); |
| 433 expect(item.target, target); | 424 expect(item.target, target); |
| 434 } | 425 } |
| 435 | 426 |
| 436 test_gatherInputs_complete() { | 427 test_gatherInputs_complete() { |
| 437 TaskManager manager = new TaskManager(); | 428 TaskManager manager = new TaskManager(); |
| 438 AnalysisContext context = new _TestContext(); | 429 AnalysisContext context = new AnalysisContextImpl(); |
| 439 AnalysisTarget target = new TestSource(); | 430 AnalysisTarget target = new TestSource(); |
| 440 TaskDescriptor descriptor = new TaskDescriptor('task', | 431 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 441 (context, target) => new TestAnalysisTask(context, target), | 432 (context, target) => new TestAnalysisTask(context, target), |
| 442 (target) => {}, [new ResultDescriptor('output', null)]); | 433 (target) => {}, [new ResultDescriptor('output', null)]); |
| 443 WorkItem item = new WorkItem(context, target, descriptor); | 434 WorkItem item = new WorkItem(context, target, descriptor); |
| 444 WorkItem result = item.gatherInputs(manager); | 435 WorkItem result = item.gatherInputs(manager); |
| 445 expect(result, isNull); | 436 expect(result, isNull); |
| 446 expect(item.exception, isNull); | 437 expect(item.exception, isNull); |
| 447 } | 438 } |
| 448 | 439 |
| 449 test_gatherInputs_incomplete() { | 440 test_gatherInputs_incomplete() { |
| 450 TaskManager manager = new TaskManager(); | 441 TaskManager manager = new TaskManager(); |
| 451 AnalysisContext context = new _TestContext(); | 442 AnalysisContext context = new AnalysisContextImpl(); |
| 452 AnalysisTarget target = new TestSource(); | 443 AnalysisTarget target = new TestSource(); |
| 453 ResultDescriptor resultA = new ResultDescriptor('resultA', null); | 444 ResultDescriptor resultA = new ResultDescriptor('resultA', null); |
| 454 ResultDescriptor resultB = new ResultDescriptor('resultB', null); | 445 ResultDescriptor resultB = new ResultDescriptor('resultB', null); |
| 455 TaskDescriptor task1 = new TaskDescriptor('task', (context, target) => | 446 TaskDescriptor task1 = new TaskDescriptor('task', (context, target) => |
| 456 new TestAnalysisTask(context, target, results: [resultA]), | 447 new TestAnalysisTask(context, target, results: [resultA]), |
| 457 (target) => {}, [resultA]); | 448 (target) => {}, [resultA]); |
| 458 TaskDescriptor task2 = new TaskDescriptor('task', | 449 TaskDescriptor task2 = new TaskDescriptor('task', |
| 459 (context, target) => new TestAnalysisTask(context, target), | 450 (context, target) => new TestAnalysisTask(context, target), |
| 460 (target) => {'one': resultA.of(target)}, [resultB]); | 451 (target) => {'one': resultA.of(target)}, [resultB]); |
| 461 manager.addTaskDescriptor(task1); | 452 manager.addTaskDescriptor(task1); |
| 462 manager.addTaskDescriptor(task2); | 453 manager.addTaskDescriptor(task2); |
| 463 WorkItem item = new WorkItem(context, target, task2); | 454 WorkItem item = new WorkItem(context, target, task2); |
| 464 expect(item.gatherInputs(manager), isNotNull); | 455 expect(item.gatherInputs(manager), isNotNull); |
| 465 } | 456 } |
| 466 | 457 |
| 467 test_gatherInputs_invalid() { | 458 test_gatherInputs_invalid() { |
| 468 TaskManager manager = new TaskManager(); | 459 TaskManager manager = new TaskManager(); |
| 469 AnalysisContext context = new _TestContext(); | 460 AnalysisContext context = new AnalysisContextImpl(); |
| 470 AnalysisTarget target = new TestSource(); | 461 AnalysisTarget target = new TestSource(); |
| 471 ResultDescriptor inputResult = new ResultDescriptor('input', null); | 462 ResultDescriptor inputResult = new ResultDescriptor('input', null); |
| 472 TaskDescriptor descriptor = new TaskDescriptor('task', | 463 TaskDescriptor descriptor = new TaskDescriptor('task', |
| 473 (context, target) => new TestAnalysisTask(context, target), | 464 (context, target) => new TestAnalysisTask(context, target), |
| 474 (target) => {'one': inputResult.of(target)}, | 465 (target) => {'one': inputResult.of(target)}, |
| 475 [new ResultDescriptor('output', null)]); | 466 [new ResultDescriptor('output', null)]); |
| 476 WorkItem item = new WorkItem(context, target, descriptor); | 467 WorkItem item = new WorkItem(context, target, descriptor); |
| 477 WorkItem result = item.gatherInputs(manager); | 468 WorkItem result = item.gatherInputs(manager); |
| 478 expect(result, isNull); | 469 expect(result, isNull); |
| 479 expect(item.exception, isNotNull); | 470 expect(item.exception, isNotNull); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 502 WorkOrder order = new WorkOrder(manager, workItem); | 493 WorkOrder order = new WorkOrder(manager, workItem); |
| 503 // "item" has no child items | 494 // "item" has no child items |
| 504 expect(order.moveNext(), isTrue); | 495 expect(order.moveNext(), isTrue); |
| 505 expect(order.current, workItem); | 496 expect(order.current, workItem); |
| 506 // done | 497 // done |
| 507 expect(order.moveNext(), isFalse); | 498 expect(order.moveNext(), isFalse); |
| 508 expect(order.current, isNull); | 499 expect(order.current, isNull); |
| 509 } | 500 } |
| 510 } | 501 } |
| 511 | 502 |
| 512 class _TestContext implements InternalAnalysisContext { | 503 /** |
| 513 InternalAnalysisContext baseContext = | 504 * An [AnalysisContextImpl] which allows to set explicit and implicit targets |
| 514 AnalysisContextFactory.contextWithCore(); | 505 * directly. |
| 515 | 506 */ |
| 507 class _TestContext extends AnalysisContextImpl { |
| 516 @override | 508 @override |
| 517 List<AnalysisTarget> explicitTargets = <AnalysisTarget>[]; | 509 List<AnalysisTarget> explicitTargets = <AnalysisTarget>[]; |
| 518 | 510 |
| 519 Map<AnalysisTarget, CacheEntry> entryMap = | |
| 520 new HashMap<AnalysisTarget, CacheEntry>(); | |
| 521 | |
| 522 @override | 511 @override |
| 523 List<AnalysisTarget> priorityTargets = <AnalysisTarget>[]; | 512 List<AnalysisTarget> priorityTargets = <AnalysisTarget>[]; |
| 524 | |
| 525 String name = 'Test Context'; | |
| 526 | |
| 527 _TestContext(); | |
| 528 | |
| 529 AnalysisOptions get analysisOptions => baseContext.analysisOptions; | |
| 530 | |
| 531 void set analysisOptions(AnalysisOptions options) { | |
| 532 baseContext.analysisOptions = options; | |
| 533 } | |
| 534 | |
| 535 @override | |
| 536 void set analysisPriorityOrder(List<Source> sources) { | |
| 537 baseContext.analysisPriorityOrder = sources; | |
| 538 } | |
| 539 | |
| 540 @override | |
| 541 set contentCache(ContentCache value) { | |
| 542 baseContext.contentCache = value; | |
| 543 } | |
| 544 | |
| 545 @override | |
| 546 DeclaredVariables get declaredVariables => baseContext.declaredVariables; | |
| 547 | |
| 548 @override | |
| 549 List<Source> get htmlSources => baseContext.htmlSources; | |
| 550 | |
| 551 @override | |
| 552 bool get isDisposed => baseContext.isDisposed; | |
| 553 | |
| 554 @override | |
| 555 List<Source> get launchableClientLibrarySources => | |
| 556 baseContext.launchableClientLibrarySources; | |
| 557 | |
| 558 @override | |
| 559 List<Source> get launchableServerLibrarySources => | |
| 560 baseContext.launchableServerLibrarySources; | |
| 561 | |
| 562 @override | |
| 563 LibraryResolverFactory get libraryResolverFactory => | |
| 564 baseContext.libraryResolverFactory; | |
| 565 | |
| 566 @override | |
| 567 List<Source> get librarySources => baseContext.librarySources; | |
| 568 | |
| 569 @override | |
| 570 Stream<SourcesChangedEvent> get onSourcesChanged => | |
| 571 baseContext.onSourcesChanged; | |
| 572 | |
| 573 @override | |
| 574 List<Source> get prioritySources => baseContext.prioritySources; | |
| 575 | |
| 576 @override | |
| 577 ResolverVisitorFactory get resolverVisitorFactory => | |
| 578 baseContext.resolverVisitorFactory; | |
| 579 | |
| 580 SourceFactory get sourceFactory => baseContext.sourceFactory; | |
| 581 | |
| 582 void set sourceFactory(SourceFactory factory) { | |
| 583 baseContext.sourceFactory = factory; | |
| 584 } | |
| 585 | |
| 586 @override | |
| 587 List<Source> get sources => baseContext.sources; | |
| 588 | |
| 589 @override | |
| 590 AnalysisContextStatistics get statistics => baseContext.statistics; | |
| 591 | |
| 592 @override | |
| 593 TypeProvider get typeProvider => baseContext.typeProvider; | |
| 594 | |
| 595 @override | |
| 596 void set typeProvider(TypeProvider typeProvider) { | |
| 597 baseContext.typeProvider = typeProvider; | |
| 598 } | |
| 599 | |
| 600 @override | |
| 601 TypeResolverVisitorFactory get typeResolverVisitorFactory => | |
| 602 baseContext.typeResolverVisitorFactory; | |
| 603 | |
| 604 @override | |
| 605 void addListener(AnalysisListener listener) { | |
| 606 baseContext.addListener(listener); | |
| 607 } | |
| 608 | |
| 609 @override | |
| 610 void addSourceInfo(Source source, SourceEntry info) { | |
| 611 baseContext.addSourceInfo(source, info); | |
| 612 } | |
| 613 | |
| 614 @override | |
| 615 void applyAnalysisDelta(AnalysisDelta delta) { | |
| 616 baseContext.applyAnalysisDelta(delta); | |
| 617 } | |
| 618 | |
| 619 @override | |
| 620 void applyChanges(ChangeSet changeSet) { | |
| 621 baseContext.applyChanges(changeSet); | |
| 622 } | |
| 623 | |
| 624 @override | |
| 625 String computeDocumentationComment(Element element) { | |
| 626 return baseContext.computeDocumentationComment(element); | |
| 627 } | |
| 628 | |
| 629 @override | |
| 630 List<AnalysisError> computeErrors(Source source) { | |
| 631 return baseContext.computeErrors(source); | |
| 632 } | |
| 633 | |
| 634 @override | |
| 635 List<Source> computeExportedLibraries(Source source) { | |
| 636 return baseContext.computeExportedLibraries(source); | |
| 637 } | |
| 638 | |
| 639 @override | |
| 640 HtmlElement computeHtmlElement(Source source) { | |
| 641 return baseContext.computeHtmlElement(source); | |
| 642 } | |
| 643 | |
| 644 @override | |
| 645 List<Source> computeImportedLibraries(Source source) { | |
| 646 return baseContext.computeImportedLibraries(source); | |
| 647 } | |
| 648 | |
| 649 @override | |
| 650 SourceKind computeKindOf(Source source) { | |
| 651 return baseContext.computeKindOf(source); | |
| 652 } | |
| 653 | |
| 654 @override | |
| 655 LibraryElement computeLibraryElement(Source source) { | |
| 656 return baseContext.computeLibraryElement(source); | |
| 657 } | |
| 658 | |
| 659 @override | |
| 660 LineInfo computeLineInfo(Source source) { | |
| 661 return baseContext.computeLineInfo(source); | |
| 662 } | |
| 663 | |
| 664 @override | |
| 665 CompilationUnit computeResolvableCompilationUnit(Source source) { | |
| 666 return baseContext.computeResolvableCompilationUnit(source); | |
| 667 } | |
| 668 | |
| 669 @override | |
| 670 CancelableFuture<CompilationUnit> computeResolvedCompilationUnitAsync( | |
| 671 Source source, Source librarySource) { | |
| 672 return baseContext.computeResolvedCompilationUnitAsync( | |
| 673 source, librarySource); | |
| 674 } | |
| 675 | |
| 676 @override | |
| 677 void dispose() { | |
| 678 baseContext.dispose(); | |
| 679 } | |
| 680 | |
| 681 @override | |
| 682 List<CompilationUnit> ensureResolvedDartUnits(Source source) { | |
| 683 return baseContext.ensureResolvedDartUnits(source); | |
| 684 } | |
| 685 | |
| 686 @override | |
| 687 bool exists(Source source) { | |
| 688 return baseContext.exists(source); | |
| 689 } | |
| 690 | |
| 691 @override | |
| 692 CacheEntry getCacheEntry(AnalysisTarget target) { | |
| 693 return entryMap.putIfAbsent(target, () => new CacheEntry()); | |
| 694 } | |
| 695 | |
| 696 @override | |
| 697 CompilationUnitElement getCompilationUnitElement( | |
| 698 Source unitSource, Source librarySource) { | |
| 699 return baseContext.getCompilationUnitElement(unitSource, librarySource); | |
| 700 } | |
| 701 | |
| 702 @override | |
| 703 TimestampedData<String> getContents(Source source) { | |
| 704 return baseContext.getContents(source); | |
| 705 } | |
| 706 | |
| 707 @override | |
| 708 InternalAnalysisContext getContextFor(Source source) { | |
| 709 return baseContext.getContextFor(source); | |
| 710 } | |
| 711 | |
| 712 @override | |
| 713 Element getElement(ElementLocation location) { | |
| 714 return baseContext.getElement(location); | |
| 715 } | |
| 716 | |
| 717 @override | |
| 718 AnalysisErrorInfo getErrors(Source source) { | |
| 719 return baseContext.getErrors(source); | |
| 720 } | |
| 721 | |
| 722 @override | |
| 723 HtmlElement getHtmlElement(Source source) { | |
| 724 return baseContext.getHtmlElement(source); | |
| 725 } | |
| 726 | |
| 727 @override | |
| 728 List<Source> getHtmlFilesReferencing(Source source) { | |
| 729 return baseContext.getHtmlFilesReferencing(source); | |
| 730 } | |
| 731 | |
| 732 @override | |
| 733 SourceKind getKindOf(Source source) { | |
| 734 return baseContext.getKindOf(source); | |
| 735 } | |
| 736 | |
| 737 @override | |
| 738 List<Source> getLibrariesContaining(Source source) { | |
| 739 return baseContext.getLibrariesContaining(source); | |
| 740 } | |
| 741 | |
| 742 @override | |
| 743 List<Source> getLibrariesDependingOn(Source librarySource) { | |
| 744 return baseContext.getLibrariesDependingOn(librarySource); | |
| 745 } | |
| 746 | |
| 747 @override | |
| 748 List<Source> getLibrariesReferencedFromHtml(Source htmlSource) { | |
| 749 return baseContext.getLibrariesReferencedFromHtml(htmlSource); | |
| 750 } | |
| 751 | |
| 752 @override | |
| 753 LibraryElement getLibraryElement(Source source) { | |
| 754 return baseContext.getLibraryElement(source); | |
| 755 } | |
| 756 | |
| 757 @override | |
| 758 LineInfo getLineInfo(Source source) { | |
| 759 return baseContext.getLineInfo(source); | |
| 760 } | |
| 761 | |
| 762 @override | |
| 763 int getModificationStamp(Source source) { | |
| 764 return baseContext.getModificationStamp(source); | |
| 765 } | |
| 766 | |
| 767 @override | |
| 768 Namespace getPublicNamespace(LibraryElement library) { | |
| 769 return baseContext.getPublicNamespace(library); | |
| 770 } | |
| 771 | |
| 772 @override | |
| 773 CompilationUnit getResolvedCompilationUnit( | |
| 774 Source unitSource, LibraryElement library) { | |
| 775 return baseContext.getResolvedCompilationUnit(unitSource, library); | |
| 776 } | |
| 777 | |
| 778 @override | |
| 779 CompilationUnit getResolvedCompilationUnit2( | |
| 780 Source unitSource, Source librarySource) { | |
| 781 return baseContext.getResolvedCompilationUnit2(unitSource, librarySource); | |
| 782 } | |
| 783 | |
| 784 @override | |
| 785 HtmlUnit getResolvedHtmlUnit(Source htmlSource) { | |
| 786 return baseContext.getResolvedHtmlUnit(htmlSource); | |
| 787 } | |
| 788 | |
| 789 @override | |
| 790 List<Source> getSourcesWithFullName(String path) { | |
| 791 return baseContext.getSourcesWithFullName(path); | |
| 792 } | |
| 793 | |
| 794 @override | |
| 795 bool handleContentsChanged( | |
| 796 Source source, String originalContents, String newContents, bool notify) { | |
| 797 return baseContext.handleContentsChanged( | |
| 798 source, originalContents, newContents, notify); | |
| 799 } | |
| 800 | |
| 801 @override | |
| 802 bool isClientLibrary(Source librarySource) { | |
| 803 return baseContext.isClientLibrary(librarySource); | |
| 804 } | |
| 805 | |
| 806 @override | |
| 807 bool isServerLibrary(Source librarySource) { | |
| 808 return baseContext.isServerLibrary(librarySource); | |
| 809 } | |
| 810 | |
| 811 @override | |
| 812 CompilationUnit parseCompilationUnit(Source source) { | |
| 813 return baseContext.parseCompilationUnit(source); | |
| 814 } | |
| 815 | |
| 816 @override | |
| 817 HtmlUnit parseHtmlUnit(Source source) { | |
| 818 return baseContext.parseHtmlUnit(source); | |
| 819 } | |
| 820 | |
| 821 @override | |
| 822 AnalysisResult performAnalysisTask() { | |
| 823 return baseContext.performAnalysisTask(); | |
| 824 } | |
| 825 | |
| 826 @override | |
| 827 void recordLibraryElements(Map<Source, LibraryElement> elementMap) { | |
| 828 baseContext.recordLibraryElements(elementMap); | |
| 829 } | |
| 830 | |
| 831 @override | |
| 832 void removeListener(AnalysisListener listener) { | |
| 833 baseContext.removeListener(listener); | |
| 834 } | |
| 835 | |
| 836 @override | |
| 837 CompilationUnit resolveCompilationUnit( | |
| 838 Source unitSource, LibraryElement library) { | |
| 839 return baseContext.resolveCompilationUnit(unitSource, library); | |
| 840 } | |
| 841 | |
| 842 @override | |
| 843 CompilationUnit resolveCompilationUnit2( | |
| 844 Source unitSource, Source librarySource) { | |
| 845 return baseContext.resolveCompilationUnit2(unitSource, librarySource); | |
| 846 } | |
| 847 | |
| 848 @override | |
| 849 HtmlUnit resolveHtmlUnit(Source htmlSource) { | |
| 850 return baseContext.resolveHtmlUnit(htmlSource); | |
| 851 } | |
| 852 | |
| 853 @override | |
| 854 void setChangedContents(Source source, String contents, int offset, | |
| 855 int oldLength, int newLength) { | |
| 856 baseContext.setChangedContents( | |
| 857 source, contents, offset, oldLength, newLength); | |
| 858 } | |
| 859 | |
| 860 @override | |
| 861 void setContents(Source source, String contents) { | |
| 862 baseContext.setContents(source, contents); | |
| 863 } | |
| 864 | |
| 865 @override | |
| 866 void visitCacheItems(void callback(Source source, SourceEntry dartEntry, | |
| 867 DataDescriptor rowDesc, CacheState state)) { | |
| 868 baseContext.visitCacheItems(callback); | |
| 869 } | |
| 870 } | 513 } |
| OLD | NEW |