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

Commit709b459

Browse files
forkiKevinRansom
authored andcommitted
Do not created nested twice (dotnet#5666)
* Do not created nested twice* Do not created nested twice* cleanup
1 parent2a74fec commit709b459

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

‎src/fsharp/NameResolution.fs‎

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3825,10 +3825,12 @@ let rec ResolvePartialLongIdentInModuleOrNamespace (ncenv: NameResolver) nenv is
38253825
| id:: rest->
38263826

38273827
(match mty.ModulesAndNamespacesByDemangledName.TryFind(id)with
3828-
| Some mspec
3829-
whennot(IsTyconUnseenObsoleteSpec ad g ncenv.amap m(modref.NestedTyconRef mspec) allowObsolete)->
3830-
letallowObsolete= rest<>[]&& allowObsolete
3831-
ResolvePartialLongIdentInModuleOrNamespace ncenv nenv isApplicableMeth m ad(modref.NestedTyconRef mspec) rest allowObsolete
3828+
| Some mspec->
3829+
letnested= modref.NestedTyconRef mspec
3830+
if IsTyconUnseenObsoleteSpec ad g ncenv.amap m nested allowObsoletethen[]else
3831+
letallowObsolete= allowObsolete&&not(isNil rest)
3832+
ResolvePartialLongIdentInModuleOrNamespace ncenv nenv isApplicableMeth m ad nested rest allowObsolete
3833+
38323834
|_->[])
38333835

38343836
@(LookupTypeNameInEntityNoArity m id modref.ModuleOrNamespaceType
@@ -4009,19 +4011,21 @@ let rec ResolvePartialLongIdentInModuleOrNamespaceForRecordFields (ncenv: NameRe
40094011
@(tycons|> List.map(modref.NestedTyconRef>> ItemOfTyconRef ncenv m))
40104012
@[// accessible record fields
40114013
for tyconin tyconsdo
4012-
if IsEntityAccessible ncenv.amap m ad(modref.NestedTyconRef tycon)then
4013-
letttype= FreshenTycon ncenv m(modref.NestedTyconRef tycon)
4014+
letnested= modref.NestedTyconRef tycon
4015+
if IsEntityAccessible ncenv.amap m ad nestedthen
4016+
letttype= FreshenTycon ncenv m nested
40144017
yield!
40154018
ncenv.InfoReader.GetRecordOrClassFieldsOfType(None, ad, m, ttype)
40164019
|> List.map Item.RecdField
40174020
]
40184021

40194022
| id:: rest->
40204023
(match mty.ModulesAndNamespacesByDemangledName.TryFind(id)with
4021-
| Some mspec
4022-
whennot(IsTyconUnseenObsoleteSpec ad g ncenv.amap m(modref.NestedTyconRef mspec) allowObsolete)->
4023-
letallowObsolete= rest<>[]&& allowObsolete
4024-
ResolvePartialLongIdentInModuleOrNamespaceForRecordFields ncenv nenv m ad(modref.NestedTyconRef mspec) rest allowObsolete
4024+
| Some mspec->
4025+
letnested= modref.NestedTyconRef mspec
4026+
if IsTyconUnseenObsoleteSpec ad g ncenv.amap m nested allowObsoletethen[]else
4027+
letallowObsolete= allowObsolete&&not(isNil rest)
4028+
ResolvePartialLongIdentInModuleOrNamespaceForRecordFields ncenv nenv m ad nested rest allowObsolete
40254029
|_->[])
40264030
@(
40274031
match restwith
@@ -4395,16 +4399,18 @@ let rec ResolvePartialLongIdentInModuleOrNamespaceForItem (ncenv: NameResolver)
43954399
|> List.filter(fun tcref->not(tcref.LogicalName.Contains(",")))
43964400
|> List.filter(fun tycon->not(IsTyconUnseen ad g ncenv.amap m(modref.NestedTyconRef tycon)))
43974401

4398-
// Get all the types and .NET constructor groups accessible from here
4399-
yield! tycons|> List.map(modref.NestedTyconRef>> ItemOfTyconRef ncenv m)
4400-
yield! tycons|> List.collect(modref.NestedTyconRef>> InfosForTyconConstructors ncenv m ad)
4402+
// Get all the types and .NET constructor groups accessible from here
4403+
letnestedTycons= tycons|> List.map modref.NestedTyconRef
4404+
yield! nestedTycons|> List.map(ItemOfTyconRef ncenv m)
4405+
yield! nestedTycons|> List.collect(InfosForTyconConstructors ncenv m ad)
44014406

44024407
| id:: rest->
44034408

4404-
match mty.ModulesAndNamespacesByDemangledName.TryFind(id)with
4405-
| Some mspec
4406-
whennot(IsTyconUnseenObsoleteSpec ad g ncenv.amap m(modref.NestedTyconRef mspec)true)->
4407-
yield! ResolvePartialLongIdentInModuleOrNamespaceForItem ncenv nenv m ad(modref.NestedTyconRef mspec) rest item
4409+
match mty.ModulesAndNamespacesByDemangledName.TryFind idwith
4410+
| Some mspec->
4411+
letnested= modref.NestedTyconRef mspec
4412+
ifnot(IsTyconUnseenObsoleteSpec ad g ncenv.amap m nestedtrue)then
4413+
yield! ResolvePartialLongIdentInModuleOrNamespaceForItem ncenv nenv m ad nested rest item
44084414
|_->()
44094415

44104416
for tyconin LookupTypeNameInEntityNoArity m id modref.ModuleOrNamespaceTypedo
@@ -4539,4 +4545,4 @@ let GetVisibleNamespacesAndModulesAtPoint (ncenv: NameResolver) (nenv: NameResol
45394545
IsInterestingModuleName demangledName&& notFakeContainerModule ilTyconNames demangledName
45404546
&& EntityRefContainsSomethingAccessible ncenv m ad x
45414547
&&not(IsTyconUnseen ad ncenv.g ncenv.amap m x))
4542-
)
4548+
)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp