@@ -220,7 +220,7 @@ type Item =
220220| Item.Types( nm,_) -> DemangleGenericTypeName nm
221221| Item.UnqualifiedType( tcref:: _) -> tcref.DisplayName
222222| Item.TypeVar( nm,_) -> nm
223- | Item.ModuleOrNamespaces( modref:: _) -> modref.DemangledModuleOrNamespaceName
223+ | Item.ModuleOrNamespaces( modref:: _) -> modref.DemangledModuleOrNamespaceName
224224| Item.ArgName( id, _, _) -> id.idText
225225| Item.SetterArg( id, _) -> id.idText
226226| Item.CustomOperation( customOpName,_,_) -> customOpName
@@ -3431,8 +3431,7 @@ let ResolveCompletionsInType (ncenv: NameResolver) nenv (completionTargets: Reso
34313431let minfos =
34323432let addersAndRemovers =
34333433 pinfoItems
3434- |> List.map( function Item.Event( FSEvent(_,_, addValRef, removeValRef)) -> [ addValRef.LogicalName; removeValRef.LogicalName] | _ -> [])
3435- |> List.concat
3434+ |> List.collect( function Item.Event( FSEvent(_,_, addValRef, removeValRef)) -> [ addValRef.LogicalName; removeValRef.LogicalName] | _ -> [])
34363435|> set
34373436
34383437if addersAndRemovers.IsEmptythen minfos
@@ -3591,18 +3590,17 @@ let rec ResolvePartialLongIdentInModuleOrNamespace (ncenv: NameResolver) nenv is
35913590let g = ncenv.g
35923591let mty = modref.ModuleOrNamespaceType
35933592
3594- let tycons =
3595- mty.TypeDefinitions
3596- |> List.filter( fun tcref -> not ( tcref.LogicalName.Contains( " ," )))
3597- |> List.filter( fun tycon -> not ( IsTyconUnseen ad g ncenv.amap m( modref.NestedTyconRef tycon)))
3598-
3599- let ilTyconNames =
3600- mty.TypesByAccessNames.Values
3601- |> List.choose( fun ( tycon : Tycon ) -> if tycon.IsILTyconthen Some tycon.DisplayNameelse None)
3602- |> Set.ofList
3603-
36043593match plidwith
36053594| [] ->
3595+ let tycons =
3596+ mty.TypeDefinitions
3597+ |> List.filter( fun tcref -> not ( tcref.LogicalName.Contains( " ," )))
3598+ |> List.filter( fun tycon -> not ( IsTyconUnseen ad g ncenv.amap m( modref.NestedTyconRef tycon)))
3599+
3600+ let ilTyconNames =
3601+ mty.TypesByAccessNames.Values
3602+ |> List.choose( fun ( tycon : Tycon ) -> if tycon.IsILTyconthen Some tycon.DisplayNameelse None)
3603+ |> Set.ofList
36063604
36073605// Collect up the accessible values in the module, excluding the members
36083606( mty.AllValsAndMembers
@@ -3615,8 +3613,7 @@ let rec ResolvePartialLongIdentInModuleOrNamespace (ncenv: NameResolver) nenv is
36153613// Collect up the accessible discriminated union cases in the module
36163614@ ( UnionCaseRefsInModuleOrNamespace modref
36173615|> List.filter( IsUnionCaseUnseen ad g ncenv.amap m>> not )
3618- |> List.map GeneralizeUnionCaseRef
3619- |> List.map( fun x -> Item.UnionCase( x, false )))
3616+ |> List.map( fun x -> Item.UnionCase( GeneralizeUnionCaseRef x, false )))
36203617
36213618// Collect up the accessible active patterns in the module
36223619@ ( ActivePatternElemsOfModuleOrNamespace modref
@@ -3635,8 +3632,9 @@ let rec ResolvePartialLongIdentInModuleOrNamespace (ncenv: NameResolver) nenv is
36353632// Collect up the accessible sub-modules
36363633@ ( mty.ModulesAndNamespacesByDemangledName
36373634|> NameMap.range
3638- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> notFakeContainerModule ilTyconNames)
3639- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> IsInterestingModuleName)
3635+ |> List.filter( fun x ->
3636+ let demangledName = x.DemangledModuleOrNamespaceName
3637+ notFakeContainerModule ilTyconNames demangledName&& IsInterestingModuleName demangledName)
36403638|> List.map modref.NestedTyconRef
36413639|> List.filter( IsTyconUnseen ad g ncenv.amap m>> not )
36423640|> List.filter( EntityRefContainsSomethingAccessible ncenv m ad)
@@ -3647,7 +3645,7 @@ let rec ResolvePartialLongIdentInModuleOrNamespace (ncenv: NameResolver) nenv is
36473645|> List.map( modref.NestedTyconRef>> ItemOfTyconRef ncenv m) )
36483646
36493647@ ( tycons
3650- |> List.map ( modref.NestedTyconRef>> InfosForTyconConstructors ncenv m ad) |> List.concat )
3648+ |> List.collect ( modref.NestedTyconRef>> InfosForTyconConstructors ncenv m ad))
36513649
36523650| id:: rest->
36533651
@@ -3671,7 +3669,7 @@ let rec ResolvePartialLongIdentInModuleOrNamespace (ncenv: NameResolver) nenv is
36713669let rec ResolvePartialLongIdentPrim ( ncenv : NameResolver ) ( nenv : NameResolutionEnv ) isApplicableMeth fullyQualified m ad plid allowObsolete =
36723670let g = ncenv.g
36733671
3674- match plidwith
3672+ match plidwith
36753673| id:: plidwhen id= " global" -> // this is deliberately not the mangled name
36763674
36773675 ResolvePartialLongIdentPrim ncenv nenv isApplicableMeth FullyQualified m ad plid allowObsolete
@@ -3703,8 +3701,9 @@ let rec ResolvePartialLongIdentPrim (ncenv: NameResolver) (nenv: NameResolutionE
37033701let moduleAndNamespaceItems =
37043702 nenv.ModulesAndNamespaces( fullyQualified)
37053703|> NameMultiMap.range
3706- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> IsInterestingModuleName)
3707- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> notFakeContainerModule ilTyconNames)
3704+ |> List.filter( fun x ->
3705+ let demangledName = x.DemangledModuleOrNamespaceName
3706+ IsInterestingModuleName demangledName&& notFakeContainerModule ilTyconNames demangledName)
37083707|> List.filter( EntityRefContainsSomethingAccessible ncenv m ad)
37093708|> List.filter( IsTyconUnseen ad g ncenv.amap m>> not )
37103709|> List.map ItemForModuleOrNamespaceRef
@@ -3764,26 +3763,27 @@ let ResolvePartialLongIdent ncenv nenv isApplicableMeth m ad plid allowObsolete
37643763let rec ResolvePartialLongIdentInModuleOrNamespaceForRecordFields ( ncenv : NameResolver ) nenv m ad ( modref : ModuleOrNamespaceRef ) plid allowObsolete =
37653764let g = ncenv.g
37663765let mty = modref.ModuleOrNamespaceType
3767-
3768- // get record type constructors
3769- let tycons =
3770- mty.TypeDefinitions
3771- |> List.filter( fun tcref -> not ( tcref.LogicalName.Contains( " ," )))
3772- |> List.filter( fun tycon -> tycon.IsRecordTycon)
3773- |> List.filter( fun tycon -> not ( IsTyconUnseen ad g ncenv.amap m( modref.NestedTyconRef tycon)))
3774-
3775- let ilTyconNames =
3776- mty.TypesByAccessNames.Values
3777- |> List.choose( fun ( tycon : Tycon ) -> if tycon.IsILTyconthen Some tycon.DisplayNameelse None)
3778- |> Set.ofList
3779-
3766+
37803767match plidwith
37813768| [] ->
3769+ // get record type constructors
3770+ let tycons =
3771+ mty.TypeDefinitions
3772+ |> List.filter( fun tcref -> not ( tcref.LogicalName.Contains( " ," )))
3773+ |> List.filter( fun tycon -> tycon.IsRecordTycon)
3774+ |> List.filter( fun tycon -> not ( IsTyconUnseen ad g ncenv.amap m( modref.NestedTyconRef tycon)))
3775+
3776+ let ilTyconNames =
3777+ mty.TypesByAccessNames.Values
3778+ |> List.choose( fun ( tycon : Tycon ) -> if tycon.IsILTyconthen Some tycon.DisplayNameelse None)
3779+ |> Set.ofList
3780+
37823781// Collect up the accessible sub-modules
37833782( mty.ModulesAndNamespacesByDemangledName
37843783|> NameMap.range
3785- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> notFakeContainerModule ilTyconNames)
3786- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> IsInterestingModuleName)
3784+ |> List.filter( fun x ->
3785+ let demangledName = x.DemangledModuleOrNamespaceName
3786+ notFakeContainerModule ilTyconNames demangledName&& IsInterestingModuleName demangledName)
37873787|> List.map modref.NestedTyconRef
37883788|> List.filter( IsTyconUnseen ad g ncenv.amap m>> not )
37893789|> List.filter( EntityRefContainsSomethingAccessible ncenv m ad)
@@ -3817,8 +3817,7 @@ let rec ResolvePartialLongIdentInModuleOrNamespaceForRecordFields (ncenv: NameRe
38173817|> List.collect( fun tycon ->
38183818let tcref = modref.NestedTyconRef tycon
38193819let ttype = FreshenTycon ncenv m tcref
3820- ncenv.InfoReader.GetRecordOrClassFieldsOfType( None, ad, m, ttype)
3821- )
3820+ ncenv.InfoReader.GetRecordOrClassFieldsOfType( None, ad, m, ttype))
38223821|> List.map Item.RecdField
38233822| _ -> []
38243823)
@@ -3846,8 +3845,9 @@ and ResolvePartialLongIdentToClassOrRecdFieldsImpl (ncenv: NameResolver) (nenv:
38463845let mods =
38473846 nenv.ModulesAndNamespaces( fullyQualified)
38483847|> NameMultiMap.range
3849- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> IsInterestingModuleName)
3850- |> List.filter( fun x -> x.DemangledModuleOrNamespaceName|> notFakeContainerModule iltyconNames)
3848+ |> List.filter( fun x ->
3849+ let demangledName = x.DemangledModuleOrNamespaceName
3850+ IsInterestingModuleName demangledName&& notFakeContainerModule iltyconNames demangledName)
38513851|> List.filter( EntityRefContainsSomethingAccessible ncenv m ad)
38523852|> List.filter( IsTyconUnseen ad g ncenv.amap m>> not )
38533853|> List.map ItemForModuleOrNamespaceRef
@@ -3864,8 +3864,7 @@ and ResolvePartialLongIdentToClassOrRecdFieldsImpl (ncenv: NameResolver) (nenv:
38643864|> Seq.collect( fun ( KeyValue ( _ , v )) -> v)
38653865|> Seq.map( fun fref ->
38663866let typeInsts = fref.TyconRef.TyparsNoRange|> List.map( fun tyar -> tyar.AsType)
3867- Item.RecdField( RecdFieldInfo( typeInsts, fref))
3868- )
3867+ Item.RecdField( RecdFieldInfo( typeInsts, fref)))
38693868|> List.ofSeq
38703869
38713870 mods@ recdTyCons@ recdFields
@@ -3887,8 +3886,7 @@ and ResolvePartialLongIdentToClassOrRecdFieldsImpl (ncenv: NameResolver) (nenv:
38873886 tycons
38883887|> List.collect( fun tcref ->
38893888let ttype = FreshenTycon ncenv m tcref
3890- ncenv.InfoReader.GetRecordOrClassFieldsOfType( None, ad, m, ttype)
3891- )
3889+ ncenv.InfoReader.GetRecordOrClassFieldsOfType( None, ad, m, ttype))
38923890|> List.map Item.RecdField
38933891| _ -> []
38943892 modsOrNs@ qualifiedFields