Skip to content

Commit 42cc2b6

Browse files
committed
Fix 177
1 parent c1caa0a commit 42cc2b6

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

src/fsharp/NameResolution.fs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1884,11 +1884,14 @@ let rec ResolveLongIdentInTypePrim (ncenv:NameResolver) nenv lookupKind (resInfo
18841884
| ResolveTypeNamesToTypeRefs ->
18851885
OneSuccess (resInfo,Item.Types (nm,nestedTypes),rest)
18861886
else
1887-
ResolveLongIdentInTypes ncenv nenv lookupKind resInfo (depth+1) m ad rest findFlag typeNameResInfo nestedTypes
1887+
ResolveLongIdentInNestedTypes ncenv nenv lookupKind resInfo (depth+1) id m ad rest findFlag typeNameResInfo nestedTypes
18881888
(OneResult contentsSearchAccessible +++ nestedSearchAccessible)
18891889

1890-
and ResolveLongIdentInTypes (ncenv:NameResolver) nenv lookupKind resInfo depth m ad lid findFlag typeNameResInfo typs =
1891-
typs |> CollectResults (ResolveLongIdentInTypePrim ncenv nenv lookupKind resInfo depth m ad lid findFlag typeNameResInfo >> AtMostOneResult m)
1890+
and ResolveLongIdentInNestedTypes (ncenv:NameResolver) nenv lookupKind resInfo depth id m ad lid findFlag typeNameResInfo typs =
1891+
typs |> CollectResults (fun typ ->
1892+
let resInfo = if isAppTy ncenv.g typ then resInfo.AddEntity(id.idRange,tcrefOfAppTy ncenv.g typ) else resInfo
1893+
ResolveLongIdentInTypePrim ncenv nenv lookupKind resInfo depth m ad lid findFlag typeNameResInfo typ
1894+
|> AtMostOneResult m)
18921895

18931896
/// Resolve a long identifer using type-qualified name resolution.
18941897
let ResolveLongIdentInType sink ncenv nenv lookupKind m ad lid findFlag typeNameResInfo typ =

tests/service/CSharpProjectAnalysis.fs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ let ``Test that csharp references are recognized as such`` () =
9393
| None ->
9494
Assert.Fail ("CSharpClass was not found in CSharp_Analysis assembly!")
9595

96-
[<Test; Ignore("Failing test for https://github.com/fsharp/FSharp.Compiler.Service/issues/177")>]
96+
[<Test>]
9797
let ``Test that symbols of csharp inner classes/enums are reported`` () =
9898
let csharpAssembly = typeof<CSharpClass>.Assembly.Location
9999
let content = """
@@ -109,6 +109,5 @@ let _ = CSharpOuterClass.InnerClass.StaticMember()
109109
|> Async.RunSynchronously
110110
|> Array.map (fun su -> su.Symbol.ToString())
111111
|> shouldEqual
112-
[|"CSharpOuterClass"; "InnerEnum"; "symbol Case1";
113-
"CSharpOuterClass"; "InnerClass"; "val StaticMember";
114-
"NestedEnumClass"|]
112+
[|"InnerEnum"; "CSharpOuterClass"; "symbol Case1"; "InnerClass";
113+
"CSharpOuterClass"; "member StaticMember"; "NestedEnumClass"|]

0 commit comments

Comments
 (0)