Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit792dbe5

Browse files
forkiKevinRansom
authored andcommitted
Shortcut NameResolution searches (dotnet#4444)
1 parentda5d0f6 commit792dbe5

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

‎src/fsharp/NameResolution.fs‎

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2688,6 +2688,7 @@ let rec ResolvePatternLongIdentPrim sink (ncenv:NameResolver) fullyQualified war
26882688
letmoduleSearch ad=
26892689
ResolveLongIndentAsModuleOrNamespaceThen sink ResultCollectionSettings.AtMostOneResult ncenv.amap m fullyQualified nenv ad lidfalse
26902690
(ResolvePatternLongIdentInModuleOrNamespace ncenv nenv numTyArgsOpt ad)
2691+
26912692
lettyconSearch ad=
26922693
match lidwith
26932694
| tn:: restwhennot(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-
letresInfo,res,rest=
2701-
match AtMostOneResult m(tyconSearch ad+++ moduleSearch ad)with
2701+
2702+
letresInfo,res,rest=
2703+
lettyconResult= tyconSearch ad
2704+
match tyconResultwith
2705+
| Result(res::_)-> res
2706+
|_->
2707+
2708+
letmoduleResult= 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+
lettyconResult= 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-
ifnot(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.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp