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.incremental_element_builder_test; | 5 library test.src.task.incremental_element_builder_test; |
6 | 6 |
7 import 'package:analyzer/src/generated/ast.dart'; | 7 import 'package:analyzer/src/generated/ast.dart'; |
8 import 'package:analyzer/src/generated/element.dart'; | 8 import 'package:analyzer/src/generated/element.dart'; |
9 import 'package:analyzer/src/generated/source.dart'; | 9 import 'package:analyzer/src/generated/source.dart'; |
10 import 'package:analyzer/src/task/incremental_element_builder.dart'; | 10 import 'package:analyzer/src/task/incremental_element_builder.dart'; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 { | 61 { |
62 Directive newNode = newDirectives[2]; | 62 Directive newNode = newDirectives[2]; |
63 expect(newNode, same(oldDirectives[1])); | 63 expect(newNode, same(oldDirectives[1])); |
64 expect(getNodeText(newNode), "import 'dart:math';"); | 64 expect(getNodeText(newNode), "import 'dart:math';"); |
65 ImportElement element = newNode.element; | 65 ImportElement element = newNode.element; |
66 expect(element, isNotNull); | 66 expect(element, isNotNull); |
67 expect(element.nameOffset, newCode.indexOf("import 'dart:math';")); | 67 expect(element.nameOffset, newCode.indexOf("import 'dart:math';")); |
68 } | 68 } |
69 } | 69 } |
70 | 70 |
| 71 test_directives_keepOffset_partOf() { |
| 72 String libCode = ''' |
| 73 // comment to shift tokens |
| 74 library my_lib; |
| 75 part 'test.dart'; |
| 76 '''; |
| 77 Source libSource = newSource('/lib.dart', libCode); |
| 78 _buildOldUnit(r''' |
| 79 part of my_lib; |
| 80 class A {} |
| 81 ''', libSource); |
| 82 _buildNewUnit(r''' |
| 83 part of my_lib; |
| 84 class A {} |
| 85 '''); |
| 86 var oldDirectives = oldUnit.directives; |
| 87 var newDirectives = newUnit.directives; |
| 88 { |
| 89 Directive newNode = newDirectives[0]; |
| 90 expect(newNode, same(oldDirectives[0])); |
| 91 expect(getNodeText(newNode), 'part of my_lib;'); |
| 92 LibraryElement element = newNode.element; |
| 93 expect(element, isNotNull); |
| 94 expect(element.nameOffset, libCode.indexOf('my_lib;')); |
| 95 } |
| 96 } |
| 97 |
71 test_directives_remove() { | 98 test_directives_remove() { |
72 _buildOldUnit(r''' | 99 _buildOldUnit(r''' |
73 library test; | 100 library test; |
74 import 'dart:async'; | 101 import 'dart:async'; |
75 import 'dart:math'; | 102 import 'dart:math'; |
76 '''); | 103 '''); |
77 _buildNewUnit(r''' | 104 _buildNewUnit(r''' |
78 library test; | 105 library test; |
79 import 'dart:math'; | 106 import 'dart:math'; |
80 '''); | 107 '''); |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 } | 577 } |
551 | 578 |
552 void _buildNewUnit(String newCode) { | 579 void _buildNewUnit(String newCode) { |
553 this.newCode = newCode; | 580 this.newCode = newCode; |
554 context.setContents(source, newCode); | 581 context.setContents(source, newCode); |
555 newUnit = context.parseCompilationUnit(source); | 582 newUnit = context.parseCompilationUnit(source); |
556 new IncrementalCompilationUnitElementBuilder(oldUnit, newUnit).build(); | 583 new IncrementalCompilationUnitElementBuilder(oldUnit, newUnit).build(); |
557 expect(newUnit.element, unitElement); | 584 expect(newUnit.element, unitElement); |
558 } | 585 } |
559 | 586 |
560 void _buildOldUnit(String oldCode) { | 587 void _buildOldUnit(String oldCode, [Source libSource]) { |
561 this.oldCode = oldCode; | 588 this.oldCode = oldCode; |
562 source = newSource('/test.dart', oldCode); | 589 source = newSource('/test.dart', oldCode); |
563 oldUnit = context.resolveCompilationUnit2(source, source); | 590 if (libSource == null) { |
| 591 libSource = source; |
| 592 } |
| 593 oldUnit = context.resolveCompilationUnit2(source, libSource); |
564 unitElement = oldUnit.element; | 594 unitElement = oldUnit.element; |
565 expect(unitElement, isNotNull); | 595 expect(unitElement, isNotNull); |
566 } | 596 } |
567 } | 597 } |
OLD | NEW |