@@ -309,27 +309,88 @@ and visitSynExceptionDefnRepr (x : SynExceptionDefnRepr) : Stuff =
309309 match synAccessOption with | Some synAccess -> yield ! visitSynAccess synAccess | None -> ()
310310 }
311311
312+ and visitEnumCase ( x : SynEnumCase ) : Stuff =
313+ match x with
314+ | SynEnumCase( synAttributeLists, synIdent, synConst, valueRange, preXmlDoc, range, synEnumCaseTrivia) ->
315+ seq {
316+ yield ! visitSynAttributeLists synAttributeLists
317+ yield ! visitSynIdent synIdent
318+ yield ! visitSynConst synConst
319+ yield ! visitPreXmlDoc preXmlDoc
320+ }
321+
322+ and visitMulti ( f ) ( items ) : Stuff = Seq.collect f items
323+
324+ and visitEnumCases = visitMulti visitEnumCase
325+
326+ and visitSynUnionCases = visitMulti visitSynUnionCase
327+
328+ and visitParserDetail ( x : ParserDetail ) : Stuff =
329+ []
330+
312331and visitTypeDefnSimpleRepr ( x : SynTypeDefnSimpleRepr ) : Stuff =
313332 match x with
314333 | SynTypeDefnSimpleRepr.Enum( synEnumCases, range) ->
315- failwith unsupported
334+ visitEnumCases synEnumCases
316335 | SynTypeDefnSimpleRepr.Exception synExceptionDefnRepr ->
317- failwith unsupported
336+ visitSynExceptionDefnRepr synExceptionDefnRepr
318337 | SynTypeDefnSimpleRepr.General( synTypeDefnKind, inherits, slotsigs, synFields, isConcrete, isIncrClass, implicitCtorSynPats, range) ->
319- failwith unsupported
338+ seq {
339+ yield ! visitSynTypeDefnKind synTypeDefnKind
340+ let inheritTypes = inherits |> List.map ( fun ( t , range , ident ) -> t)
341+ yield ! visitSynTypes inheritTypes
342+ }
320343 | SynTypeDefnSimpleRepr.None range ->
321- failwith unsupported
344+ []
322345 | SynTypeDefnSimpleRepr.Record( synAccessOption, recordFields, range) ->
323- failwith unsupported
346+ seq {
347+ match synAccessOption with | Some access -> yield ! visitSynAccess access | None -> ()
348+ yield ! visitSynFields recordFields
349+ }
324350 | SynTypeDefnSimpleRepr.Union( synAccessOption, synUnionCases, range) ->
325- failwith unsupported
351+ seq {
352+ match synAccessOption with | Some access -> yield ! visitSynAccess access | None -> ()
353+ yield ! visitSynUnionCases synUnionCases
354+ }
326355 | SynTypeDefnSimpleRepr.TypeAbbrev( parserDetail, rhsType, range) ->
327- failwith unsupported
356+ seq {
357+ yield ! visitParserDetail parserDetail
358+ yield ! visitSynType rhsType
359+ }
328360 | SynTypeDefnSimpleRepr.LibraryOnlyILAssembly( ilType, range) ->
329- failwith unsupported
361+ []
362+
363+ and visitSynArgInfo ( x : SynArgInfo ) : Stuff =
364+ match x with
365+ | SynArgInfo( synAttributeLists, optional, identOption) ->
366+ visitSynAttributeLists synAttributeLists
367+
368+ and visitSynValInfo ( x : SynValInfo ) : Stuff =
369+ match x with
370+ | SynValInfo( curriedArgInfos, synArgInfo) ->
371+ seq {
372+ yield ! curriedArgInfos |> Seq.concat |> Seq.collect visitSynArgInfo
373+ yield ! visitSynArgInfo synArgInfo
374+ }
330375
331376and visitSynTypeDefnKind ( x : SynTypeDefnKind ) : Stuff =
332- failwith unsupported
377+ match x with
378+ | SynTypeDefnKind.Delegate( synType, synValInfo) ->
379+ seq {
380+ yield ! visitSynType synType
381+ yield ! visitSynValInfo synValInfo
382+ }
383+ | SynTypeDefnKind.Abbrev
384+ | SynTypeDefnKind.Augmentation _
385+ | SynTypeDefnKind.Class
386+ | SynTypeDefnKind.Interface
387+ | SynTypeDefnKind.Opaque
388+ | SynTypeDefnKind.Record
389+ | SynTypeDefnKind.Struct
390+ | SynTypeDefnKind.Union
391+ | SynTypeDefnKind.Unspecified
392+ | SynTypeDefnKind.IL ->
393+ []
333394
334395and visitSynTypeDefnRepr ( x : SynTypeDefnRepr ) : Stuff =
335396 match x with
0 commit comments