@@ -439,33 +439,25 @@ fn client_test_complete_self_crate_name() {
439439 let diag = rls. wait_for_diagnostics ( ) ;
440440 assert ! ( diag. diagnostics[ 0 ] . message. contains( "expected identifier" ) ) ;
441441
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+ } ) ;
455452
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+ } ;
461458
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" ) ;
469461
470462 rls. shutdown ( ) ;
471463}
@@ -535,33 +527,27 @@ fn client_completion_suggests_arguments_in_statements() {
535527 let diag = rls. wait_for_diagnostics ( ) ;
536528 assert ! ( diag. diagnostics[ 0 ] . message. contains( "expected one of" ) ) ;
537529
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+ } ) ;
551540
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+ } ;
557546
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 ( ) ;
565551}
566552
567553#[ test]
@@ -606,33 +592,27 @@ fn client_use_statement_completion_doesnt_suggest_arguments() {
606592 let diag = rls. wait_for_diagnostics ( ) ;
607593 assert ! ( diag. diagnostics[ 0 ] . message. contains( "expected identifier" ) ) ;
608594
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+ } ) ;
622605
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+ } ;
628611
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 ( ) ;
636616}
637617
638618/// Test simulates typing in a dependency wrongly in a couple of ways before finally getting it
0 commit comments