@@ -2688,6 +2688,7 @@ let rec ResolvePatternLongIdentPrim sink (ncenv:NameResolver) fullyQualified war
26882688let moduleSearch ad =
26892689 ResolveLongIndentAsModuleOrNamespaceThen sink ResultCollectionSettings.AtMostOneResult ncenv.amap m fullyQualified nenv ad lidfalse
26902690( ResolvePatternLongIdentInModuleOrNamespace ncenv nenv numTyArgsOpt ad)
2691+
26912692let tyconSearch ad =
26922693match lidwith
26932694| tn:: restwhen not ( isNil rest) ->
@@ -2697,15 +2698,33 @@ let rec ResolvePatternLongIdentPrim sink (ncenv:NameResolver) fullyQualified war
26972698 ResolveLongIdentInTyconRefs ResultCollectionSettings.AtMostOneResult ncenv nenv LookupKind.Pattern1 tn.idRange ad rest numTyArgsOpt tn.idRange tcrefs
26982699| _ ->
26992700 NoResultsOrUsefulErrors
2700- let resInfo , res , rest =
2701- match AtMostOneResult m( tyconSearch ad+++ moduleSearch ad) with
2701+
2702+ let resInfo , res , rest =
2703+ let tyconResult = tyconSearch ad
2704+ match tyconResultwith
2705+ | Result( res:: _) -> res
2706+ | _ ->
2707+
2708+ let moduleResult = moduleSearch ad
2709+ match moduleResultwith
2710+ | Result( res:: _) -> res
2711+ | _ ->
2712+
2713+ match AtMostOneResult m( tyconResult+++ moduleResult) with
27022714| Result_ as res-> ForceRaise res
2703- | _ ->
2704- ForceRaise( AtMostOneResult m( tyconSearch AccessibleFromSomeFSharpCode+++ moduleSearch AccessibleFromSomeFSharpCode))
2715+ | _ ->
2716+
2717+ let tyconResult = tyconSearch AccessibleFromSomeFSharpCode
2718+ match tyconResultwith
2719+ | Result( res:: _) -> res
2720+ | _ ->
2721+ ForceRaise( AtMostOneResult m( tyconResult+++ moduleSearch AccessibleFromSomeFSharpCode))
2722+
27052723 ResolutionInfo.SendEntityPathToSink( sink, ncenv, nenv, ItemOccurence.Use, ad, resInfo, ResultTyparChecker( fun () -> true ))
27062724
2707- if not ( isNil rest) then error( Error( FSComp.SR.nrIsNotConstructorOrLiteral(),( List.head rest) .idRange))
2708- res
2725+ match restwith
2726+ | [] -> res
2727+ | element:: _ -> error( Error( FSComp.SR.nrIsNotConstructorOrLiteral(), element.idRange))
27092728
27102729
27112730/// Resolve a long identifier when used in a pattern.