Skip to content

Commit e337ee9

Browse files
committed
WIP
1 parent ddb2e72 commit e337ee9

File tree

1 file changed

+70
-9
lines changed

1 file changed

+70
-9
lines changed

tests/FSharp.Compiler.Service.Tests2/TypeTests.fs

Lines changed: 70 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
312331
and 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

331376
and 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

334395
and visitSynTypeDefnRepr (x : SynTypeDefnRepr) : Stuff =
335396
match x with

0 commit comments

Comments
 (0)