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

Side by Side Diff: pkg/analyzer/lib/src/context/cache.dart

Issue 2151373002: Share LibrarySpecificUnits when possible (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Clean-up Created 4 years, 5 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/context/context.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) 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 analyzer.src.context.cache; 5 library analyzer.src.context.cache;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 9
10 import 'package:analyzer/src/dart/element/element.dart' 10 import 'package:analyzer/src/dart/element/element.dart'
11 show ElementImpl, Modifier; 11 show ElementImpl, Modifier;
12 import 'package:analyzer/src/generated/engine.dart'; 12 import 'package:analyzer/src/generated/engine.dart';
13 import 'package:analyzer/src/generated/java_engine.dart'; 13 import 'package:analyzer/src/generated/java_engine.dart';
14 import 'package:analyzer/src/generated/source.dart'; 14 import 'package:analyzer/src/generated/source.dart';
15 import 'package:analyzer/src/generated/utilities_collection.dart'; 15 import 'package:analyzer/src/generated/utilities_collection.dart';
16 import 'package:analyzer/src/task/model.dart'; 16 import 'package:analyzer/src/task/model.dart';
17 import 'package:analyzer/task/dart.dart';
17 import 'package:analyzer/task/model.dart'; 18 import 'package:analyzer/task/model.dart';
18 19
19 /** 20 /**
20 * Return `true` if the [result] of the [target] should be flushed. 21 * Return `true` if the [result] of the [target] should be flushed.
21 */ 22 */
22 typedef bool FlushResultFilter<V>( 23 typedef bool FlushResultFilter<V>(
23 AnalysisTarget target, ResultDescriptor<V> result); 24 AnalysisTarget target, ResultDescriptor<V> result);
24 25
25 /** 26 /**
26 * Return `true` if the given [target] is a priority one. 27 * Return `true` if the given [target] is a priority one.
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 */ 307 */
307 static final Map<ResultDescriptor, int> recomputedCounts = 308 static final Map<ResultDescriptor, int> recomputedCounts =
308 new HashMap<ResultDescriptor, int>(); 309 new HashMap<ResultDescriptor, int>();
309 310
310 /** 311 /**
311 * The target this entry is about. 312 * The target this entry is about.
312 */ 313 */
313 final AnalysisTarget target; 314 final AnalysisTarget target;
314 315
315 /** 316 /**
317 * A library specific unit associated with the target if the target is a
318 * [Source], or `null` if the target is not a [Source] or if a library
319 * specific unit for the source has not yet been computed.
320 */
321 LibrarySpecificUnit librarySpecificUnit;
322
323 /**
316 * The partition that is responsible for this entry. 324 * The partition that is responsible for this entry.
317 */ 325 */
318 CachePartition _partition; 326 CachePartition _partition;
319 327
320 /** 328 /**
321 * The most recent time at which the state of the target matched the state 329 * The most recent time at which the state of the target matched the state
322 * represented by this entry, `-1` if the target does not exist. 330 * represented by this entry, `-1` if the target does not exist.
323 */ 331 */
324 int modificationTime = -1; 332 int modificationTime = -1;
325 333
(...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 _removeIfSource(target); 1102 _removeIfSource(target);
1095 return entry; 1103 return entry;
1096 } 1104 }
1097 1105
1098 /** 1106 /**
1099 * Records that a value of the result described by the given [descriptor] 1107 * Records that a value of the result described by the given [descriptor]
1100 * for the given [target] was just read from the cache. 1108 * for the given [target] was just read from the cache.
1101 */ 1109 */
1102 void resultAccessed(AnalysisTarget target, ResultDescriptor descriptor) { 1110 void resultAccessed(AnalysisTarget target, ResultDescriptor descriptor) {
1103 CacheFlushManager flushManager = _getFlushManager(descriptor); 1111 CacheFlushManager flushManager = _getFlushManager(descriptor);
1104 TargetedResult result = new TargetedResult(target, descriptor); 1112 TargetedResult result =
1113 new TargetedResult(context.canonicalizeTarget(target), descriptor);
1105 flushManager.resultAccessed(result); 1114 flushManager.resultAccessed(result);
1106 } 1115 }
1107 1116
1108 /** 1117 /**
1109 * Records that the given [result] was just stored into the cache. 1118 * Records that the given [result] was just stored into the cache.
1110 */ 1119 */
1111 void resultStored(TargetedResult result, Object value) { 1120 void resultStored(TargetedResult result, Object value) {
1112 CacheFlushManager flushManager = _getFlushManager(result.result); 1121 CacheFlushManager flushManager = _getFlushManager(result.result);
1113 List<TargetedResult> resultsToFlush = 1122 List<TargetedResult> resultsToFlush =
1114 flushManager.resultStored(result, value); 1123 flushManager.resultStored(result, value);
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
1400 void resultAccessed(TargetedResult result) {} 1409 void resultAccessed(TargetedResult result) {}
1401 1410
1402 @override 1411 @override
1403 List<TargetedResult> resultStored(TargetedResult newResult, newValue) { 1412 List<TargetedResult> resultStored(TargetedResult newResult, newValue) {
1404 return TargetedResult.EMPTY_LIST; 1413 return TargetedResult.EMPTY_LIST;
1405 } 1414 }
1406 1415
1407 @override 1416 @override
1408 void targetRemoved(AnalysisTarget target) {} 1417 void targetRemoved(AnalysisTarget target) {}
1409 } 1418 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/context/context.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698