Skip to content

Commit

Permalink
Fixed bug in implicit analysis notification and renamed tests
Browse files Browse the repository at this point in the history
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1236013003 .
  • Loading branch information
bwilkerson committed Jul 17, 2015
1 parent cb5335d commit d37ac8d
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 36 deletions.
2 changes: 1 addition & 1 deletion pkg/analyzer/lib/src/context/context.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1659,7 +1659,7 @@ class AnalysisContextImpl implements InternalAnalysisContext {

void _removeFromCache(Source source) {
CacheEntry entry = _cache.remove(source);
if (entry != null && entry.explicitlyAdded) {
if (entry != null && !entry.explicitlyAdded) {
_implicitAnalysisEventsController
.add(new ImplicitAnalysisEvent(source, false));
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/analyzer/lib/src/generated/engine.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4599,7 +4599,7 @@ class AnalysisContextImpl implements InternalAnalysisContext {

void _removeFromCache(Source source) {
SourceEntry entry = _cache.remove(source);
if (entry != null && entry.explicitlyAdded) {
if (entry != null && !entry.explicitlyAdded) {
_implicitAnalysisEventsController
.add(new ImplicitAnalysisEvent(source, false));
}
Expand Down
30 changes: 15 additions & 15 deletions pkg/analyzer/test/generated/engine_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -245,21 +245,6 @@ class AnalysisContextImplTest extends EngineTestCase {
super.tearDown();
}

Future test_analyzedSources_added() async {
AnalyzedSourcesListener listener = new AnalyzedSourcesListener();
_context.implicitAnalysisEvents.listen(listener.onData);
//
// Create a file that references an file that is not explicitly being
// analyzed and fully analyze it. Ensure that the listener is told about
// the implicitly analyzed file.
//
Source sourceA = _addSource('/a.dart', "library a; import 'b.dart';");
Source sourceB = _createSource('/b.dart', "library b;");
_context.computeErrors(sourceA);
await pumpEventQueue();
listener.expectAnalyzed(sourceB);
}

Future test_applyChanges_add() {
SourcesChangedListener listener = new SourcesChangedListener();
_context.onSourcesChanged.listen(listener.onData);
Expand Down Expand Up @@ -1348,6 +1333,21 @@ main() {}''');
// assertLength(0, statistics.getSources());
}

Future test_implicitAnalysisEvents_added() async {
AnalyzedSourcesListener listener = new AnalyzedSourcesListener();
_context.implicitAnalysisEvents.listen(listener.onData);
//
// Create a file that references an file that is not explicitly being
// analyzed and fully analyze it. Ensure that the listener is told about
// the implicitly analyzed file.
//
Source sourceA = _addSource('/a.dart', "library a; import 'b.dart';");
Source sourceB = _createSource('/b.dart', "library b;");
_context.computeErrors(sourceA);
await pumpEventQueue();
listener.expectAnalyzed(sourceB);
}

void test_isClientLibrary_dart() {
_context = AnalysisContextFactory.oldContextWithCore();
_sourceFactory = _context.sourceFactory;
Expand Down
38 changes: 19 additions & 19 deletions pkg/analyzer/test/src/context/context_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ main() {

@reflectiveTest
class AnalysisContextImplTest extends AbstractContextTest {
Future fail_analyzedSources_removed() async {
Future fail_implicitAnalysisEvents_removed() async {
AnalyzedSourcesListener listener = new AnalyzedSourcesListener();
context.implicitAnalysisEvents.listen(listener.onData);
//
Expand Down Expand Up @@ -116,24 +116,6 @@ class AnalysisContextImplTest extends AbstractContextTest {
super.tearDown();
}

Future test_analyzedSources_added() async {
AnalyzedSourcesListener listener = new AnalyzedSourcesListener();
context.implicitAnalysisEvents.listen(listener.onData);
//
// Create a file that references an file that is not explicitly being
// analyzed and fully analyze it. Ensure that the listener is told about
// the implicitly analyzed file.
//
Source sourceA = newSource('/a.dart', "library a; import 'b.dart';");
Source sourceB = newSource('/b.dart', "library b;");
ChangeSet changeSet = new ChangeSet();
changeSet.addedSource(sourceA);
context.applyChanges(changeSet);
context.computeErrors(sourceA);
await pumpEventQueue();
listener.expectAnalyzed(sourceB);
}

Future test_applyChanges_add() {
SourcesChangedListener listener = new SourcesChangedListener();
context.onSourcesChanged.listen(listener.onData);
Expand Down Expand Up @@ -1250,6 +1232,24 @@ main() {}''');
expect(analysisResult.changeNotices, isNotNull);
}

Future test_implicitAnalysisEvents_added() async {
AnalyzedSourcesListener listener = new AnalyzedSourcesListener();
context.implicitAnalysisEvents.listen(listener.onData);
//
// Create a file that references an file that is not explicitly being
// analyzed and fully analyze it. Ensure that the listener is told about
// the implicitly analyzed file.
//
Source sourceA = newSource('/a.dart', "library a; import 'b.dart';");
Source sourceB = newSource('/b.dart', "library b;");
ChangeSet changeSet = new ChangeSet();
changeSet.addedSource(sourceA);
context.applyChanges(changeSet);
context.computeErrors(sourceA);
await pumpEventQueue();
listener.expectAnalyzed(sourceB);
}

void test_isClientLibrary_dart() {
Source source = addSource("/test.dart", r'''
import 'dart:html';
Expand Down

0 comments on commit d37ac8d

Please sign in to comment.