| 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 engine.incremental_resolver_test; | 5 library engine.incremental_resolver_test; |
| 6 | 6 |
| 7 import 'package:analyzer/src/context/cache.dart' as task; |
| 7 import 'package:analyzer/src/generated/ast.dart'; | 8 import 'package:analyzer/src/generated/ast.dart'; |
| 8 import 'package:analyzer/src/generated/element.dart'; | 9 import 'package:analyzer/src/generated/element.dart'; |
| 9 import 'package:analyzer/src/generated/engine.dart'; | 10 import 'package:analyzer/src/generated/engine.dart'; |
| 10 import 'package:analyzer/src/generated/error.dart'; | 11 import 'package:analyzer/src/generated/error.dart'; |
| 11 import 'package:analyzer/src/generated/incremental_logger.dart' as log; | 12 import 'package:analyzer/src/generated/incremental_logger.dart' as log; |
| 12 import 'package:analyzer/src/generated/incremental_resolution_validator.dart'; | 13 import 'package:analyzer/src/generated/incremental_resolution_validator.dart'; |
| 13 import 'package:analyzer/src/generated/incremental_resolver.dart'; | 14 import 'package:analyzer/src/generated/incremental_resolver.dart'; |
| 14 import 'package:analyzer/src/generated/java_engine.dart'; | 15 import 'package:analyzer/src/generated/java_engine.dart'; |
| 15 import 'package:analyzer/src/generated/parser.dart'; | 16 import 'package:analyzer/src/generated/parser.dart'; |
| 16 import 'package:analyzer/src/generated/resolver.dart'; | 17 import 'package:analyzer/src/generated/resolver.dart'; |
| 17 import 'package:analyzer/src/generated/scanner.dart'; | 18 import 'package:analyzer/src/generated/scanner.dart'; |
| 18 import 'package:analyzer/src/generated/source_io.dart'; | 19 import 'package:analyzer/src/generated/source_io.dart'; |
| 19 import 'package:analyzer/src/generated/testing/ast_factory.dart'; | 20 import 'package:analyzer/src/generated/testing/ast_factory.dart'; |
| 20 import 'package:analyzer/src/generated/testing/element_factory.dart'; | 21 import 'package:analyzer/src/generated/testing/element_factory.dart'; |
| 22 import 'package:analyzer/task/dart.dart'; |
| 21 import 'package:unittest/unittest.dart'; | 23 import 'package:unittest/unittest.dart'; |
| 22 | 24 |
| 23 import '../reflective_tests.dart'; | 25 import '../reflective_tests.dart'; |
| 24 import 'parser_test.dart'; | 26 import 'parser_test.dart'; |
| 25 import 'resolver_test.dart'; | 27 import 'resolver_test.dart'; |
| 26 import 'test_support.dart'; | 28 import 'test_support.dart'; |
| 27 | 29 |
| 28 main() { | 30 main() { |
| 29 groupSep = ' | '; | 31 groupSep = ' | '; |
| 30 runReflectiveTests(DeclarationMatcherTest); | 32 runReflectiveTests(DeclarationMatcherTest); |
| (...skipping 2435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2466 | 2468 |
| 2467 @reflectiveTest | 2469 @reflectiveTest |
| 2468 class IncrementalResolverTest extends ResolverTestCase { | 2470 class IncrementalResolverTest extends ResolverTestCase { |
| 2469 Source source; | 2471 Source source; |
| 2470 String code; | 2472 String code; |
| 2471 LibraryElement library; | 2473 LibraryElement library; |
| 2472 CompilationUnit unit; | 2474 CompilationUnit unit; |
| 2473 | 2475 |
| 2474 @override | 2476 @override |
| 2475 void reset() { | 2477 void reset() { |
| 2476 analysisContext2 = AnalysisContextFactory.oldContextWithCore(); | 2478 if (AnalysisEngine.instance.useTaskModel) { |
| 2479 analysisContext2 = AnalysisContextFactory.contextWithCore(); |
| 2480 } else { |
| 2481 analysisContext2 = AnalysisContextFactory.oldContextWithCore(); |
| 2482 } |
| 2477 } | 2483 } |
| 2478 | 2484 |
| 2479 @override | 2485 @override |
| 2480 void resetWithOptions(AnalysisOptions options) { | 2486 void resetWithOptions(AnalysisOptions options) { |
| 2481 analysisContext2 = | 2487 if (AnalysisEngine.instance.useTaskModel) { |
| 2482 AnalysisContextFactory.oldContextWithCoreAndOptions(options); | 2488 analysisContext2 = |
| 2489 AnalysisContextFactory.contextWithCoreAndOptions(options); |
| 2490 } else { |
| 2491 analysisContext2 = |
| 2492 AnalysisContextFactory.oldContextWithCoreAndOptions(options); |
| 2493 } |
| 2483 } | 2494 } |
| 2484 | 2495 |
| 2485 void setUp() { | 2496 void setUp() { |
| 2486 super.setUp(); | 2497 super.setUp(); |
| 2487 test_resolveApiChanges = true; | 2498 test_resolveApiChanges = true; |
| 2488 log.logger = log.NULL_LOGGER; | 2499 log.logger = log.NULL_LOGGER; |
| 2489 } | 2500 } |
| 2490 | 2501 |
| 2491 void test_classMemberAccessor_body() { | 2502 void test_classMemberAccessor_body() { |
| 2492 _resolveUnit(r''' | 2503 _resolveUnit(r''' |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2805 } | 2816 } |
| 2806 // update tokens | 2817 // update tokens |
| 2807 { | 2818 { |
| 2808 int delta = edit.replacement.length - edit.length; | 2819 int delta = edit.replacement.length - edit.length; |
| 2809 _shiftTokens(unit.beginToken, offset, delta); | 2820 _shiftTokens(unit.beginToken, offset, delta); |
| 2810 } | 2821 } |
| 2811 // do incremental resolution | 2822 // do incremental resolution |
| 2812 int updateOffset = edit.offset; | 2823 int updateOffset = edit.offset; |
| 2813 int updateEndOld = updateOffset + edit.length; | 2824 int updateEndOld = updateOffset + edit.length; |
| 2814 int updateOldNew = updateOffset + edit.replacement.length; | 2825 int updateOldNew = updateOffset + edit.replacement.length; |
| 2815 IncrementalResolver resolver = new IncrementalResolver( | 2826 IncrementalResolver resolver; |
| 2816 (analysisContext2 as AnalysisContextImpl) | 2827 if (AnalysisEngine.instance.useTaskModel) { |
| 2817 .getReadableSourceEntryOrNull(source), null, null, unit.element, | 2828 LibrarySpecificUnit lsu = new LibrarySpecificUnit(source, source); |
| 2818 updateOffset, updateEndOld, updateOldNew); | 2829 task.AnalysisCache cache = analysisContext2.analysisCache; |
| 2830 resolver = new IncrementalResolver(null, cache.get(source), |
| 2831 cache.get(lsu), unit.element, updateOffset, updateEndOld, |
| 2832 updateOldNew); |
| 2833 } else { |
| 2834 resolver = new IncrementalResolver( |
| 2835 (analysisContext2 as AnalysisContextImpl) |
| 2836 .getReadableSourceEntryOrNull(source), null, null, unit.element, |
| 2837 updateOffset, updateEndOld, updateOldNew); |
| 2838 } |
| 2819 bool success = resolver.resolve(newNode); | 2839 bool success = resolver.resolve(newNode); |
| 2820 expect(success, isTrue); | 2840 expect(success, isTrue); |
| 2821 List<AnalysisError> newErrors = analysisContext.computeErrors(source); | 2841 List<AnalysisError> newErrors = analysisContext.computeErrors(source); |
| 2822 // resolve "newCode" from scratch | 2842 // resolve "newCode" from scratch |
| 2823 CompilationUnit fullNewUnit; | 2843 CompilationUnit fullNewUnit; |
| 2824 { | 2844 { |
| 2825 source = addSource(newCode); | 2845 source = addSource(newCode); |
| 2826 _runTasks(); | 2846 _runTasks(); |
| 2827 LibraryElement library = resolve2(source); | 2847 LibraryElement library = resolve2(source); |
| 2828 fullNewUnit = resolveCompilationUnit(source, library); | 2848 fullNewUnit = resolveCompilationUnit(source, library); |
| (...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4156 return ResolutionContextBuilder.contextFor(node, listener).scope; | 4176 return ResolutionContextBuilder.contextFor(node, listener).scope; |
| 4157 } | 4177 } |
| 4158 } | 4178 } |
| 4159 | 4179 |
| 4160 class _Edit { | 4180 class _Edit { |
| 4161 final int offset; | 4181 final int offset; |
| 4162 final int length; | 4182 final int length; |
| 4163 final String replacement; | 4183 final String replacement; |
| 4164 _Edit(this.offset, this.length, this.replacement); | 4184 _Edit(this.offset, this.length, this.replacement); |
| 4165 } | 4185 } |
| OLD | NEW |