22
33open Buildalyzer
44open FSharp.Compiler .Service .Tests
5- open FSharp.Compiler .Service .Tests2 .ASTVisit
5+ open FSharp.Compiler .Service .Tests .Types
6+ open FSharp.Compiler .Service .Tests .Utils
67open FSharp.Compiler .Service .Tests2 .DepResolving
78open NUnit.Framework
89open Newtonsoft.Json
@@ -77,7 +78,7 @@ module GH3 =
7778"""
7879
7980 [
80- " Abbr.fs" , WithAbbreviations
81+ // "Abbr.fs", WithAbbreviations
8182 " A.fsi" , A_ fsi
8283 " A.fs" , A
8384 " B.fs" , B
@@ -95,14 +96,20 @@ let TestHardcodedFiles() =
9596
9697 let nodes =
9798 sampleFiles
98- |> List.map ( fun ( name , code ) -> { FileAST.Name = name; FileAST.Code = code; FileAST.AST = parseSourceCode( name, code)})
99+ |> List.mapi ( fun i ( name , code ) ->
100+ {
101+ Name = name
102+ Idx = FileIdx.make i
103+ Code = code
104+ AST = parseSourceCode( name, code)
105+ } : SourceFile)
99106 |> List.toArray
100107
101108 let graph = AutomatedDependencyResolving.detectFileDependencies nodes
102109
103110 printfn " Detected file dependencies:"
104111 graph.Graph
105- |> Seq.iter ( fun ( KeyValue ( idx , deps )) -> printfn $" {graph.Files[idx]. Name} -> %+A {deps |> Array.map(fun d -> graph.Files[d] .Name)}" )
112+ |> Seq.iter ( fun ( KeyValue ( file , deps )) -> printfn $" {file. Name} -> %+A {deps |> Array.map(fun d -> d .Name)}" )
106113
107114 analyseEfficiency graph
108115
@@ -133,26 +140,26 @@ let TestProject (projectFile : string) =
133140 let files = parseProjectAndGetSourceFiles projectFile
134141 let files =
135142 files
136- |> Array.Parallel.map ( fun f ->
143+ |> Array.Parallel.mapi ( fun i f ->
137144 let code = System.IO.File.ReadAllText( f)
138145 let ast = getParseResults code
139- { Name = f ; Code = code ; AST = ast }
140- )
141- |> Array.filter ( fun x ->
142- // true
143- ASTVisit.findModuleAndTypeRefs x. AST
144- |> Array.forall ( function | ReferenceOrAbbreviation.Reference _ -> true | ReferenceOrAbbreviation.Abbreviation _ -> false )
146+ {
147+ Name = f
148+ Idx = FileIdx.make i
149+ Code = code
150+ AST = ast
151+ } : SourceFile
145152 )
146153 let N = files.Length
147154 log $" {N} files read and parsed"
148155
149156 let graph = AutomatedDependencyResolving.detectFileDependencies files
150157 log " Deps detected"
151158
152- let totalDeps = graph.Graph |> Seq.sumBy ( fun ( KeyValue ( idx , deps )) -> deps.Length)
159+ let totalDeps = graph.Graph |> Seq.sumBy ( fun ( KeyValue ( file , deps )) -> deps.Length)
153160 let maxPossibleDeps = ( N * ( N-1 )) / 2
154161
155- let graphJson = graph.Graph |> Seq.map ( fun ( KeyValue ( idx , deps )) -> graph.Files [ idx ]. Name, deps |> Array.map ( fun d -> graph.Files [ d ] . Name)) |> dict
162+ let graphJson = graph.Graph |> Seq.map ( fun ( KeyValue ( file , deps )) -> file. Name, deps |> Array.map ( fun d -> file .Name)) |> dict
156163 let json = JsonConvert.SerializeObject( graphJson, Formatting.Indented)
157164 let path = $" {System.IO.Path.GetFileName(projectFile)}.deps.json"
158165 System.IO.File.WriteAllText( path, json)
0 commit comments