@@ -439,33 +439,25 @@ fn client_test_complete_self_crate_name() {
439
439
let diag = rls. wait_for_diagnostics ( ) ;
440
440
assert ! ( diag. diagnostics[ 0 ] . message. contains( "expected identifier" ) ) ;
441
441
442
- // Sometimes RLS is not ready immediately for completion
443
- let mut detail = None ;
444
- for id in 100 ..103 {
445
- let response = rls. request :: < Completion > ( id, CompletionParams {
446
- context : Some ( CompletionContext {
447
- trigger_character : Some ( ":" . to_string ( ) ) ,
448
- trigger_kind : CompletionTriggerKind :: TriggerCharacter ,
449
- } ) ,
450
- position : Position :: new ( 2 , 32 ) ,
451
- text_document : TextDocumentIdentifier {
452
- uri : Url :: from_file_path ( p. root ( ) . join ( "library/tests/test.rs" ) ) . unwrap ( ) ,
453
- }
454
- } ) ;
442
+ let response = rls. request :: < Completion > ( 100 , CompletionParams {
443
+ context : Some ( CompletionContext {
444
+ trigger_character : Some ( ":" . to_string ( ) ) ,
445
+ trigger_kind : CompletionTriggerKind :: TriggerCharacter ,
446
+ } ) ,
447
+ position : Position :: new ( 2 , 32 ) ,
448
+ text_document : TextDocumentIdentifier {
449
+ uri : Url :: from_file_path ( p. root ( ) . join ( "library/tests/test.rs" ) ) . unwrap ( ) ,
450
+ }
451
+ } ) ;
455
452
456
- let items = match response {
457
- Some ( CompletionResponse :: Array ( items) ) => items,
458
- Some ( CompletionResponse :: List ( CompletionList { items, ..} ) ) => items,
459
- _ => Vec :: new ( ) ,
460
- } ;
453
+ let items = match response {
454
+ Some ( CompletionResponse :: Array ( items) ) => items,
455
+ Some ( CompletionResponse :: List ( CompletionList { items, ..} ) ) => items,
456
+ _ => Vec :: new ( ) ,
457
+ } ;
461
458
462
- if let Some ( item) = items. get ( 0 ) {
463
- detail = item. detail . clone ( ) ;
464
- break ;
465
- }
466
- }
467
- // Make sure we get the completion at least once right
468
- assert_eq ! ( detail. as_ref( ) . unwrap( ) , "pub fn function() -> usize" ) ;
459
+ let item = items. into_iter ( ) . nth ( 0 ) . expect ( "Racer autocompletion failed" ) ;
460
+ assert_eq ! ( item. detail. unwrap( ) , "pub fn function() -> usize" ) ;
469
461
470
462
rls. shutdown ( ) ;
471
463
}
@@ -535,33 +527,27 @@ fn client_completion_suggests_arguments_in_statements() {
535
527
let diag = rls. wait_for_diagnostics ( ) ;
536
528
assert ! ( diag. diagnostics[ 0 ] . message. contains( "expected one of" ) ) ;
537
529
538
- // Sometimes RLS is not ready immediately for completion
539
- let mut insert_text = None ;
540
- for id in 100 ..103 {
541
- let response = rls. request :: < Completion > ( id, CompletionParams {
542
- context : Some ( CompletionContext {
543
- trigger_character : Some ( "f" . to_string ( ) ) ,
544
- trigger_kind : CompletionTriggerKind :: TriggerCharacter ,
545
- } ) ,
546
- position : Position :: new ( 3 , 41 ) ,
547
- text_document : TextDocumentIdentifier {
548
- uri : Url :: from_file_path ( p. root ( ) . join ( "library/tests/test.rs" ) ) . unwrap ( ) ,
549
- }
550
- } ) ;
530
+ let response = rls. request :: < Completion > ( 100 , CompletionParams {
531
+ context : Some ( CompletionContext {
532
+ trigger_character : Some ( "f" . to_string ( ) ) ,
533
+ trigger_kind : CompletionTriggerKind :: TriggerCharacter ,
534
+ } ) ,
535
+ position : Position :: new ( 3 , 41 ) ,
536
+ text_document : TextDocumentIdentifier {
537
+ uri : Url :: from_file_path ( p. root ( ) . join ( "library/tests/test.rs" ) ) . unwrap ( ) ,
538
+ }
539
+ } ) ;
551
540
552
- let items = match response {
553
- Some ( CompletionResponse :: Array ( items) ) => items,
554
- Some ( CompletionResponse :: List ( CompletionList { items, ..} ) ) => items,
555
- _ => Vec :: new ( ) ,
556
- } ;
541
+ let items = match response {
542
+ Some ( CompletionResponse :: Array ( items) ) => items,
543
+ Some ( CompletionResponse :: List ( CompletionList { items, ..} ) ) => items,
544
+ _ => Vec :: new ( ) ,
545
+ } ;
557
546
558
- if let Some ( item) = items. get ( 0 ) {
559
- insert_text = item. insert_text . clone ( ) ;
560
- break ;
561
- }
562
- }
563
- // Make sure we get the completion at least once right
564
- assert_eq ! ( insert_text. as_ref( ) . unwrap( ) , "function()" ) ;
547
+ let item = items. into_iter ( ) . nth ( 0 ) . expect ( "Racer autocompletion failed" ) ;
548
+ assert_eq ! ( item. insert_text. unwrap( ) , "function()" ) ;
549
+
550
+ rls. shutdown ( ) ;
565
551
}
566
552
567
553
#[ test]
@@ -606,33 +592,27 @@ fn client_use_statement_completion_doesnt_suggest_arguments() {
606
592
let diag = rls. wait_for_diagnostics ( ) ;
607
593
assert ! ( diag. diagnostics[ 0 ] . message. contains( "expected identifier" ) ) ;
608
594
609
- // Sometimes RLS is not ready immediately for completion
610
- let mut insert_text = None ;
611
- for id in 100 ..103 {
612
- let response = rls. request :: < Completion > ( id, CompletionParams {
613
- context : Some ( CompletionContext {
614
- trigger_character : Some ( ":" . to_string ( ) ) ,
615
- trigger_kind : CompletionTriggerKind :: TriggerCharacter ,
616
- } ) ,
617
- position : Position :: new ( 2 , 32 ) ,
618
- text_document : TextDocumentIdentifier {
619
- uri : Url :: from_file_path ( p. root ( ) . join ( "library/tests/test.rs" ) ) . unwrap ( ) ,
620
- }
621
- } ) ;
595
+ let response = rls. request :: < Completion > ( 100 , CompletionParams {
596
+ context : Some ( CompletionContext {
597
+ trigger_character : Some ( ":" . to_string ( ) ) ,
598
+ trigger_kind : CompletionTriggerKind :: TriggerCharacter ,
599
+ } ) ,
600
+ position : Position :: new ( 2 , 32 ) ,
601
+ text_document : TextDocumentIdentifier {
602
+ uri : Url :: from_file_path ( p. root ( ) . join ( "library/tests/test.rs" ) ) . unwrap ( ) ,
603
+ }
604
+ } ) ;
622
605
623
- let items = match response {
624
- Some ( CompletionResponse :: Array ( items) ) => items,
625
- Some ( CompletionResponse :: List ( CompletionList { items, ..} ) ) => items,
626
- _ => Vec :: new ( ) ,
627
- } ;
606
+ let items = match response {
607
+ Some ( CompletionResponse :: Array ( items) ) => items,
608
+ Some ( CompletionResponse :: List ( CompletionList { items, ..} ) ) => items,
609
+ _ => Vec :: new ( ) ,
610
+ } ;
628
611
629
- if let Some ( item) = items. get ( 0 ) {
630
- insert_text = item. insert_text . clone ( ) ;
631
- break ;
632
- }
633
- }
634
- // Make sure we get the completion at least once right
635
- assert_eq ! ( insert_text. as_ref( ) . unwrap( ) , "function" ) ;
612
+ let item = items. into_iter ( ) . nth ( 0 ) . expect ( "Racer autocompletion failed" ) ;
613
+ assert_eq ! ( item. insert_text. unwrap( ) , "function" ) ;
614
+
615
+ rls. shutdown ( ) ;
636
616
}
637
617
638
618
/// Test simulates typing in a dependency wrongly in a couple of ways before finally getting it
0 commit comments