@@ -212,22 +212,20 @@ module Ast =
212212 |> List.collect ( fun n -> n.Attributes)
213213 |> List.tryFind ( typeNameMatches typeof< 'a>)
214214
215- let extractTypeDefn ( ast : ParsedInput ) =
216- let rec extractTypes ( moduleDecls : SynModuleDecl list ) ( ns : LongIdent ) =
217- [ for moduleDecl in moduleDecls do
218- match moduleDecl with
219- | SynModuleDecl.Types( types, _) ->
220- yield ( ns, types)
221- | SynModuleDecl.NestedModule( SynComponentInfo(_, _, _, longId, _, _, _, _), _, decls, _, _, _) ->
222- let combined = longId |> List.append ns
223- yield ! ( extractTypes decls combined)
224- | other -> ()
225- ]
215+ let rec private extractTypesFromDecls ( moduleDecls : SynModuleDecl list ) ( ns : LongIdent ) =
216+ [ for moduleDecl in moduleDecls do
217+ match moduleDecl with
218+ | SynModuleDecl.Types ( types, _) -> yield ( ns, types)
219+ | SynModuleDecl.NestedModule ( SynComponentInfo (_, _, _, longId, _, _, _, _), _, decls, _, _, _) ->
220+ let combined = longId |> List.append ns
221+ yield ! extractTypesFromDecls decls combined
222+ | _ -> () ]
226223
224+ let extractTypeDefn ( ast : ParsedInput ) =
227225 [ match ast with
228226 | ParsedInput.ImplFile( ParsedImplFileInput(_ name, _ isScript, _ qualifiedNameOfFile, _ scopedPragmas, _ hashDirectives, modules, _ g, _, _)) ->
229227 for SynModuleOrNamespace( namespaceId, _ isRec, _ isModule, moduleDecls, _ preXmlDoc, _ attributes, _ access, _, _) as ns in modules do
230- yield ! extractTypes moduleDecls namespaceId
228+ yield ! extractTypesFromDecls moduleDecls namespaceId
231229 | _ -> () ]
232230
233231 let isRecord ( SynTypeDefn ( _componentInfo , typeDefRepr , _memberDefs , _ , _ , _ )) =
@@ -266,19 +264,10 @@ module Ast =
266264 | _ -> () ]
267265
268266 let getTypeDefns ( nsOrModule : SynModuleOrNamespace ) =
269- let rec extractTypes ( moduleDecls : SynModuleDecl list ) ( ns : LongIdent ) =
270- [ for moduleDecl in moduleDecls do
271- match moduleDecl with
272- | SynModuleDecl.Types ( types, _) -> yield ( ns, types)
273- | SynModuleDecl.NestedModule ( SynComponentInfo (_ attribs, _ typeParams, _ constraints, longId, _ xmlDoc, _ preferPostfix, _ accessibility, _ range), _ isRec, decls, _ local, _ outerRange,_ trivia) ->
274- let combined = longId |> List.append ns
275- yield ! ( extractTypes decls combined)
276- | _ other -> () ]
277-
278267 let ( SynModuleOrNamespace ( namespaceId , _isRec , _isModule , moduleDecls , _preXmlDoc , _attributes , _access , _range , _ )) =
279268 nsOrModule
280269
281- extractTypes moduleDecls namespaceId
270+ extractTypesFromDecls moduleDecls namespaceId
282271
283272 let records ( nsOrModule : SynModuleOrNamespace ) =
284273 getTypeDefns nsOrModule |> filterTypes isRecord
0 commit comments