@@ -373,24 +373,29 @@ let test = System.Sp{caret}
373373#endif
374374
375375module Options =
376+ let private assertItemWithOptions getOption ( options : FSharpCodeCompletionOptions list ) name source =
377+ options
378+ |> List.iter ( fun options ->
379+ let contains = getOption options
380+ let info = Checker.getCompletionInfoWithOptions options source
381+ assertItemsWithNames contains [ name] info
382+ )
383+
376384 module AllowObsolete =
377385 let private allowObsoleteOptions = { FSharpCodeCompletionOptions.Default with SuggestObsoleteSymbols = true }
378386 let private disallowObsoleteOptions = { FSharpCodeCompletionOptions.Default with SuggestObsoleteSymbols = false }
379387
380- let private assertItemWithOptions assertAllowed assertDisallowed name source =
381- if assertAllowed then
382- let info = Checker.getCompletionInfoWithOptions allowObsoleteOptions source
383- assertHasItemWithNames [ name] info
388+ let private assertItemWithOptions =
389+ assertItemWithOptions _. SuggestObsoleteSymbols
384390
385- if assertDisallowed then
386- let info = Checker.getCompletionInfoWithOptions disallowObsoleteOptions source
387- assertHasNoItemsWithNames [ name] info
391+ let assertItem ( name : string ) source =
392+ assertItemWithOptions [ allowObsoleteOptions; disallowObsoleteOptions] name source
388393
389- let assertItem name ( source ) =
390- assertItemWithOptions true true name source
394+ let assertItemAllowed name source =
395+ assertItemWithOptions [ allowObsoleteOptions ] name source
391396
392- let assertItemAllowed name ( source ) =
393- assertItemWithOptions true false name source
397+ let assertItemNotAllowed name source =
398+ assertItemWithOptions [ disallowObsoleteOptions ] name source
394399
395400 [<Fact>]
396401 let ``Prop - Instance 01`` () =
@@ -680,3 +685,40 @@ exception E
680685try () with E{caret}
681686"""
682687
688+
689+ module PatternNameSuggestions =
690+ let private suggestPatternNames = { FSharpCodeCompletionOptions.Default with SuggestPatternNames = true }
691+ let private doNotSuggestPatternNames = { FSharpCodeCompletionOptions.Default with SuggestPatternNames = false }
692+
693+ let assertItemWithOptions =
694+ assertItemWithOptions _. SuggestPatternNames
695+
696+ let assertItem name source =
697+ assertItemWithOptions [ suggestPatternNames; doNotSuggestPatternNames] name source
698+
699+ [<Fact>]
700+ let ``Union case field 01`` () =
701+ assertItem " named" """
702+ type U =
703+ | A of named: int
704+
705+ match A 1 with
706+ | A n{caret}
707+ """
708+
709+ module OverrideSuggestions =
710+ let private suggestOverrides = { FSharpCodeCompletionOptions.Default with SuggestGeneratedOverrides = true }
711+ let private doNotSuggestOverrides = { FSharpCodeCompletionOptions.Default with SuggestGeneratedOverrides = false }
712+
713+ let assertItemWithOptions =
714+ assertItemWithOptions _. SuggestGeneratedOverrides
715+
716+ let assertItem name source =
717+ assertItemWithOptions [ suggestOverrides; doNotSuggestOverrides] name source
718+
719+ [<Fact>]
720+ let ``Override 01`` () =
721+ assertItem " this.ToString (): string = \n base.ToString()" """
722+ type T() =
723+ override {caret}
724+ """
0 commit comments