angular_analyzer_plugin
angular_analyzer_plugin copied to clipboard
Fuzz failure during autocompletion
Fuzz Failure
<<==DART CODE==>>
import 'package:angular2/angular2.dart';
@Component(
selector: 'my-aaa,
templateUrl: 'test.html',
directives: const [CounterComponent, NgIf, NgFor, NgForm, NgModel])
class ComponentA {
List<String> items;
Strig header;
}
@Component(
selector: 'my-counter',
inputs: const ['count'],
outputs: const ['resetEvent: reset'],
template: '{{count}} <button "(click)="increment()" [value]="\'add\'"></butt
<<==HTML CODE==>>
<!-- @ngIgnoreErrors: -->
[maxCount]='4'
{{x}} : {{item.trim()}}
<fof2833a3f260b0937bater.reset()'
<my-counter></my-counter>
rm #ngForm="ngForm"></form>
(click)='h1.hidden = !h1.hidden; coun}
]),
});
{
\'\'\');
'090cedb3f2833a3f260b0937bater.reset()'
<my-counter></my-counter>
(reset)=''
<input [(ngModel)]="header" />
{{ngFo^rm.dirty}}
</li>
(incremented)='items.add($event.toString())'>
</div>
<div *ngIf="items.length > 0">
<h1 #h1>Showing {{items.length}} items:</h1>
<li *ngFor='let item of items; let x=index' [hidden]='item != ntull'>
</my-counter>
<my-counter #counter
[count]="items.length"
<<==DONE==>>
'package:analyzer_plugin/src/utilities/completion/optype.dart': Failed assertion: line 433 pos 12: 'false': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/dart:core/errors_patch.dart:37)
#1 _AssertionError._throwNew (dart:core-patch/dart:core/errors_patch.dart:33)
#2 _OpTypeAstVisitor.visitExpression (package:analyzer_plugin/src/utilities/completion/optype.dart:433:12)
#3 GeneralizingAstVisitor.visitLiteral (package:analyzer/dart/ast/visitor.dart:400:35)
#4 GeneralizingAstVisitor.visitSymbolLiteral (package:analyzer/dart/ast/visitor.dart:521:47)
#5 SymbolLiteralImpl.accept (package:analyzer/src/dart/ast/ast.dart:10312:49)
#6 new OpType.forCompletion (package:analyzer_plugin/src/utilities/completion/optype.dart:117:10)
#7 NgInheritedReferenceContributor.defineOpType (package:angular_analyzer_plugin/src/completion.dart:310:24)
#8 NgInheritedReferenceContributor.computeSuggestions (package:angular_analyzer_plugin/src/completion.dart:264:13)
<asynchronous suspension>
#9 AbstractCompletionContributorTest.computeSuggestions (file:///home/mfairhurst/dart/angular_analyzer_plugin2/angular_analyzer_plugin/test/completion_contributor_test_util.dart:56:25)
<asynchronous suspension>
#10 CompletionFuzzTest.checkNoCrash.<anonymous closure>.<anonymous closure> (file:///home/mfairhurst/dart/angular_analyzer_plugin2/angular_analyzer_plugin/test/completion_fuzz_test.dart:45:11)
#11 _rootRunUnary (dart:async/zone.dart:1134)
#12 _CustomZone.runUnary (dart:async/zone.dart:1031)
#13 _FutureListener.handleValue (dart:async/future_impl.dart:129)
#14 _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633)
#15 _Future._propagateToListeners (dart:async/future_impl.dart:662)
#16 _Future._complete (dart:async/future_impl.dart:467)
#17 _SyncCompleter.complete (dart:async/future_impl.dart:51)
#18 _completeOnAsyncReturn (dart:async-patch/dart:async/async_patch.dart:292)
#19 AbstractCompletionContributorTest.resolveSingleTemplate (file:///home/mfairhurst/dart/angular_analyzer_plugin2/angular_analyzer_plugin/test/completion_contributor_test_util.dart:79:9)
#20 _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/dart:async/async_patch.dart:77)
#21 _rootRunUnary (dart:async/zone.dart:1134)
#22 _CustomZone.runUnary (dart:async/zone.dart:1031)
#23 _FutureListener.handleValue (dart:async/future_impl.dart:129)
#24 _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633)
#25 _Future._propagateToListeners (dart:async/future_impl.dart:662)
#26 _Future._complete (dart:async/future_impl.dart:467)
#27 _SyncCompleter.complete (dart:async/future_impl.dart:51)
#28 _completeOnAsyncReturn (dart:async-patch/dart:async/async_patch.dart:292)
#29 AngularDriver.resolveHtml (package:angular_analyzer_plugin/src/angular_driver.dart:480:5)
#30 _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/dart:async/async_patch.dart:77)
#31 _rootRunUnary (dart:async/zone.dart:1134)
#32 _CustomZone.runUnary (dart:async/zone.dart:1031)
#33 _FutureListener.handleValue (dart:async/future_impl.dart:129)
#34 _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633)
#35 _Future._propagateToListeners (dart:async/future_impl.dart:662)
#36 _Future._complete (dart:async/future_impl.dart:467)
#37 _SyncCompleter.complete (dart:async/future_impl.dart:51)
#38 _completeOnAsyncReturn (dart:async-patch/dart:async/async_patch.dart:292)
#39 AngularDriver.resolveHtmlFrom (package:angular_analyzer_plugin/src/angular_driver.dart:603:5)
#40 _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/dart:async/async_patch.dart:77)
#41 _rootRunUnary (dart:async/zone.dart:1134)
#42 _CustomZone.runUnary (dart:async/zone.dart:1031)
#43 _FutureListener.handleValue (dart:async/future_impl.dart:129)
#44 _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633)
This seems to be a race condition or something. Have reproed it twice in my fuzzer (seeds 1384179290 and 3939120087) and neither have seemed to fail more than once.