OLD | NEW |
---|---|
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 analysis.server; | 5 library analysis.server; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 import 'dart:core' hide Resource; | 9 import 'dart:core' hide Resource; |
10 import 'dart:math' show max; | 10 import 'dart:math' show max; |
(...skipping 16 matching lines...) Expand all Loading... | |
27 import 'package:analyzer/source/pub_package_map_provider.dart'; | 27 import 'package:analyzer/source/pub_package_map_provider.dart'; |
28 import 'package:analyzer/src/generated/ast.dart'; | 28 import 'package:analyzer/src/generated/ast.dart'; |
29 import 'package:analyzer/src/generated/element.dart'; | 29 import 'package:analyzer/src/generated/element.dart'; |
30 import 'package:analyzer/src/generated/engine.dart'; | 30 import 'package:analyzer/src/generated/engine.dart'; |
31 import 'package:analyzer/src/generated/java_engine.dart'; | 31 import 'package:analyzer/src/generated/java_engine.dart'; |
32 import 'package:analyzer/src/generated/java_io.dart'; | 32 import 'package:analyzer/src/generated/java_io.dart'; |
33 import 'package:analyzer/src/generated/sdk.dart'; | 33 import 'package:analyzer/src/generated/sdk.dart'; |
34 import 'package:analyzer/src/generated/source.dart'; | 34 import 'package:analyzer/src/generated/source.dart'; |
35 import 'package:analyzer/src/generated/source_io.dart'; | 35 import 'package:analyzer/src/generated/source_io.dart'; |
36 import 'package:analyzer/src/generated/utilities_general.dart'; | 36 import 'package:analyzer/src/generated/utilities_general.dart'; |
37 import 'package:analyzer/src/task/dart.dart'; | |
37 import 'package:analyzer/src/util/glob.dart'; | 38 import 'package:analyzer/src/util/glob.dart'; |
38 import 'package:plugin/plugin.dart'; | 39 import 'package:plugin/plugin.dart'; |
39 | 40 |
40 typedef void OptionUpdater(AnalysisOptionsImpl options); | 41 typedef void OptionUpdater(AnalysisOptionsImpl options); |
41 | 42 |
42 /** | 43 /** |
43 * Enum representing reasons why analysis might be done for a given file. | 44 * Enum representing reasons why analysis might be done for a given file. |
44 */ | 45 */ |
45 class AnalysisDoneReason { | 46 class AnalysisDoneReason { |
46 /** | 47 /** |
(...skipping 1267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1314 * been yet resolved, or any problem happened. | 1315 * been yet resolved, or any problem happened. |
1315 */ | 1316 */ |
1316 CompilationUnit _getResolvedCompilationUnitToResendNotification( | 1317 CompilationUnit _getResolvedCompilationUnitToResendNotification( |
1317 AnalysisContext context, Source source) { | 1318 AnalysisContext context, Source source) { |
1318 List<Source> librarySources = context.getLibrariesContaining(source); | 1319 List<Source> librarySources = context.getLibrariesContaining(source); |
1319 if (librarySources.isEmpty) { | 1320 if (librarySources.isEmpty) { |
1320 return null; | 1321 return null; |
1321 } | 1322 } |
1322 // if library has not been resolved yet, the unit will be resolved later | 1323 // if library has not been resolved yet, the unit will be resolved later |
1323 Source librarySource = librarySources[0]; | 1324 Source librarySource = librarySources[0]; |
1324 if (context.getLibraryElement(librarySource) == null) { | 1325 if (context.getResult(librarySource, LIBRARY_ELEMENT8) == null) { |
Paul Berry
2015/11/30 20:44:35
I'm also concerned about the leakage of LIBRARY_EL
Brian Wilkerson
2015/11/30 21:35:39
As I'm sure you know, the method getLibraryElement
eernst
2015/12/14 10:01:39
DBC: If LIBRARY_ELEMENT8 and maybe other, similarl
Brian Wilkerson
2015/12/14 15:38:26
Absolutely. We had a discussion in the office abou
| |
1325 return null; | 1326 return null; |
1326 } | 1327 } |
1327 // if library has been already resolved, resolve unit | 1328 // if library has been already resolved, resolve unit |
1328 return runWithWorkingCacheSize(context, () { | 1329 return runWithWorkingCacheSize(context, () { |
1329 return context.resolveCompilationUnit2(source, librarySource); | 1330 return context.resolveCompilationUnit2(source, librarySource); |
1330 }); | 1331 }); |
1331 } | 1332 } |
1332 | 1333 |
1333 _scheduleAnalysisImplementedNotification() async { | 1334 _scheduleAnalysisImplementedNotification() async { |
1334 Set<String> files = analysisServices[AnalysisService.IMPLEMENTED]; | 1335 Set<String> files = analysisServices[AnalysisService.IMPLEMENTED]; |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1667 /** | 1668 /** |
1668 * The [PerformanceTag] for time spent in server request handlers. | 1669 * The [PerformanceTag] for time spent in server request handlers. |
1669 */ | 1670 */ |
1670 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); | 1671 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); |
1671 | 1672 |
1672 /** | 1673 /** |
1673 * The [PerformanceTag] for time spent in split store microtasks. | 1674 * The [PerformanceTag] for time spent in split store microtasks. |
1674 */ | 1675 */ |
1675 static PerformanceTag splitStore = new PerformanceTag('splitStore'); | 1676 static PerformanceTag splitStore = new PerformanceTag('splitStore'); |
1676 } | 1677 } |
OLD | NEW |