Skip to content

Commit 47a8af6

Browse files
committed
Finish?
1 parent c900602 commit 47a8af6

1 file changed

Lines changed: 107 additions & 45 deletions

File tree

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

Lines changed: 107 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -606,23 +606,28 @@ and visitPat (x : SynPat) : Stuff =
606606
| SynPat.LongIdent(synLongIdent, identOption, synValTyparDeclsOption, synArgPats, synAccessOption, range) ->
607607
seq {
608608
yield! visitSynLongIdent synLongIdent
609-
match synValTyparDeclsOption with | Some decls -> yield! visitSynTyparDecls decls | None -> ()
609+
match synValTyparDeclsOption with | Some decls -> yield! visitSynValTyparDecls decls | None -> ()
610610
yield! visitSynArgPats synArgPats
611+
match synAccessOption with | Some access -> yield! visitSynAccess access | None -> ()
611612
}
612-
()
613613
| SynPat.OptionalVal(ident, range) ->
614-
()
614+
[]
615615
| SynPat.QuoteExpr(synExpr, range) ->
616-
()
616+
visitExpr synExpr
617617
| SynPat.ArrayOrList(isArray, elementPats, range) ->
618-
()
618+
visitSynPats elementPats
619619
| SynPat.DeprecatedCharRange(startChar, endChar, range) ->
620-
()
620+
[]
621621
| SynPat.FromParseError(synPat, range) ->
622-
()
622+
visitPat synPat
623623

624624
and visitBindingReturnInfo (x : SynBindingReturnInfo) : Stuff =
625-
failwith unsupported
625+
match x with
626+
| SynBindingReturnInfo(typeName, range, synAttributeLists) ->
627+
seq {
628+
yield! visitType typeName
629+
yield! visitSynAttributeLists synAttributeLists
630+
}
626631

627632
and visitSynBinding (x : SynBinding) : Stuff =
628633
match x with
@@ -665,7 +670,13 @@ and visitSynLongIdent (ident : SynLongIdent) : Stuff =
665670
[ident]
666671

667672
and visitSynMatchClause (x : SynMatchClause) : Stuff =
668-
failwith unsupported
673+
match x with
674+
| SynMatchClause(synPat, synExprOption, resultExpr, range, debugPointAtTarget, synMatchClauseTrivia) ->
675+
seq {
676+
yield! visitPat synPat
677+
match synExprOption with | Some expr -> yield! visitExpr expr | None -> ()
678+
yield! visitExpr resultExpr
679+
}
669680

670681
and visitSynMatchClauses = visitMulti visitSynMatchClause
671682

@@ -675,7 +686,7 @@ and visitExprOnly (x : SeqExprOnly) : Stuff =
675686
and visitSynInterpolatedStringPart (x : SynInterpolatedStringPart) : Stuff =
676687
match x with
677688
| SynInterpolatedStringPart.String(value, range) ->
678-
failwith unsupported
689+
[]
679690
| SynInterpolatedStringPart.FillExpr(fillExpr, identOption) ->
680691
visitExpr fillExpr
681692

@@ -709,13 +720,11 @@ and visitSynMemberSig (x : SynMemberSig) : Stuff =
709720
| SynMemberSig.Interface(interfaceType, range) ->
710721
visitType interfaceType
711722
| SynMemberSig.Member(synValSig, synMemberFlags, range) ->
712-
seq {
713-
yield! visitValSig synValSig
714-
}
723+
visitValSig synValSig
715724
| SynMemberSig.NestedType(synTypeDefnSig, range) ->
716-
failwith unsupported
725+
visitSynTypeDefnSign synTypeDefnSig
717726
| SynMemberSig.ValField(synField, range) ->
718-
failwith unsupported
727+
visitSynField synField
719728

720729
and visitExpr (expr : SynExpr) =
721730
let l = System.Collections.Generic.List<SynLongIdent>()
@@ -768,13 +777,18 @@ and visitExpr (expr : SynExpr) =
768777
| SynExpr.Record(tupleOption, copyInfo, synExprRecordFields, range) ->
769778
match tupleOption with
770779
| Some(synType, synExpr, range, tupleOption, range1) ->
771-
failwith unsupported
780+
seq {
781+
yield! visitType synType
782+
yield! visitExpr synExpr
783+
}
784+
|> go
772785
| None ->
773786
()
774787
match copyInfo with
775788
| Some(synExpr, tuple) ->
776789
visitExpr synExpr |> go
777-
| None -> ()
790+
| None ->
791+
()
778792
| SynExpr.Sequential(debugPointAtSequential, isTrueSeq, synExpr, expr2, range) ->
779793
visitExpr synExpr |> go
780794
visitExpr expr2 |> go
@@ -858,61 +872,110 @@ and visitExpr (expr : SynExpr) =
858872
visitSynInterfaceImpls synInterfaceImpls |> go
859873
| SynExpr.TraitCall(supportTys, synMemberSig, argExpr, range) ->
860874
visitType supportTys |> go
861-
synmembersig
862-
failwith unsupported
875+
visitSynMemberSig synMemberSig |> go
876+
visitExpr argExpr |> go
863877
| SynExpr.TryFinally(tryExpr, finallyExpr, range, debugPointAtTry, debugPointAtFinally, synExprTryFinallyTrivia) ->
864-
failwith unsupported
878+
visitExpr tryExpr |> go
879+
visitExpr finallyExpr |> go
865880
| SynExpr.TryWith(tryExpr, synMatchClauses, range, debugPointAtTry, debugPointAtWith, synExprTryWithTrivia) ->
866-
failwith unsupported
881+
visitExpr tryExpr |> go
882+
visitSynMatchClauses synMatchClauses |> go
867883
| SynExpr.TypeApp(synExpr, lessRange, typeArgs, commaRanges, greaterRange, typeArgsRange, range) ->
868-
failwith unsupported
884+
visitExpr synExpr |> go
885+
visitSynTypes typeArgs |> go
869886
| SynExpr.TypeTest(synExpr, targetType, range) ->
870-
failwith unsupported
887+
visitExpr synExpr |> go
888+
visitType targetType |> go
871889
| SynExpr.ArbitraryAfterError(debugStr, range) ->
872-
failwith unsupported
890+
()
873891
| SynExpr.ArrayOrList(isArray, synExprs, range) ->
874-
failwith unsupported
892+
visitExprs synExprs |> go
875893
| SynExpr.DotIndexedGet(objectExpr, indexArgs, dotRange, range) ->
876-
failwith unsupported
894+
visitExpr objectExpr |> go
895+
visitExpr indexArgs |> go
877896
| SynExpr.DotIndexedSet(objectExpr, indexArgs, valueExpr, leftOfSetRange, dotRange, range) ->
878-
failwith unsupported
897+
visitExpr objectExpr |> go
898+
visitExpr indexArgs |> go
899+
visitExpr valueExpr |> go
879900
| SynExpr.FromParseError(synExpr, range) ->
880-
failwith unsupported
901+
visitExpr synExpr |> go
881902
| SynExpr.IfThenElse(synExpr, thenExpr, synExprOption, debugPointAtBinding, isFromErrorRecovery, range, synExprIfThenElseTrivia) ->
882-
failwith unsupported
903+
visitExpr synExpr |> go
904+
visitExpr thenExpr |> go
905+
match synExprOption with | Some expr -> visitExpr expr |> go | None -> ()
883906
| SynExpr.IndexFromEnd(synExpr, range) ->
884-
failwith unsupported
907+
visitExpr synExpr |> go
885908
| SynExpr.LetOrUse(isRecursive, isUse, synBindings, synExpr, range, synExprLetOrUseTrivia) ->
886-
failwith unsupported
909+
visitBindings synBindings |> go
910+
visitExpr synExpr |> go
887911
| SynExpr.LongIdentSet(synLongIdent, synExpr, range) ->
888-
failwith unsupported
912+
visitSynLongIdent synLongIdent |> go
913+
visitExpr synExpr |> go
889914
| SynExpr.YieldOrReturn(flags, synExpr, range) ->
890-
failwith unsupported
915+
visitExpr synExpr |> go
891916
| SynExpr.ArrayOrListComputed(isArray, synExpr, range) ->
892-
failwith unsupported
917+
visitExpr synExpr |> go
893918
| SynExpr.LetOrUseBang(debugPointAtBinding, isUse, isFromSource, synPat, synExpr, synExprAndBangs, body, range, synExprLetOrUseBangTrivia) ->
894-
failwith unsupported
919+
visitPat synPat |> go
920+
visitExpr synExpr |> go
921+
Seq.collect visitExprAndBang synExprAndBangs |> go
922+
visitExpr body |> go
895923
| SynExpr.LibraryOnlyStaticOptimization(synStaticOptimizationConstraints, synExpr, optimizedExpr, range) ->
896-
failwith unsupported
924+
visitStaticOptimizationConstraints synStaticOptimizationConstraints |> go
925+
visitExpr synExpr |> go
926+
visitExpr optimizedExpr |> go
897927
| SynExpr.NamedIndexedPropertySet(synLongIdent, synExpr, expr2, range) ->
928+
visitSynLongIdent synLongIdent |> go
929+
visitExpr synExpr |> go
930+
visitExpr expr2 |> go
898931
failwith unsupported
899932
| SynExpr.SequentialOrImplicitYield(debugPointAtSequential, synExpr, expr2, ifNotStmt, range) ->
900-
failwith unsupported
933+
visitExpr synExpr |> go
934+
visitExpr expr2 |> go
935+
visitExpr ifNotStmt |> go
901936
| SynExpr.YieldOrReturnFrom(flags, synExpr, range) ->
902-
failwith unsupported
937+
visitExpr synExpr |> go
903938
| SynExpr.DotNamedIndexedPropertySet(targetExpr, synLongIdent, argExpr, rhsExpr, range) ->
904-
failwith unsupported
939+
visitExpr targetExpr |> go
940+
visitSynLongIdent synLongIdent |> go
941+
visitExpr argExpr |> go
942+
visitExpr rhsExpr |> go
905943
| SynExpr.LibraryOnlyILAssembly(ilCode, typeArgs, synExprs, synTypes, range) ->
906-
failwith unsupported
944+
visitSynTypes typeArgs |> go
945+
visitExprs synExprs |> go
946+
visitSynTypes synTypes |> go
907947
| SynExpr.DiscardAfterMissingQualificationAfterDot(synExpr, range) ->
908-
failwith unsupported
948+
visitExpr synExpr |> go
909949
| SynExpr.LibraryOnlyUnionCaseFieldGet(synExpr, longId, fieldNum, range) ->
910-
failwith unsupported
950+
visitExpr synExpr |> go
951+
visitLongIdent longId |> go
911952
| SynExpr.LibraryOnlyUnionCaseFieldSet(synExpr, longId, fieldNum, rhsExpr, range) ->
912-
failwith unsupported
953+
visitExpr synExpr |> go
954+
visitLongIdent longId |> go
955+
visitExpr rhsExpr |> go
913956

914957
l
915958

959+
and visitStaticOptimizationConstraint (x : SynStaticOptimizationConstraint) : Stuff =
960+
match x with
961+
| SynStaticOptimizationConstraint.WhenTyparIsStruct(synTypar, range) ->
962+
visitTypar synTypar
963+
| SynStaticOptimizationConstraint.WhenTyparTyconEqualsTycon(synTypar, rhsType, range) ->
964+
seq {
965+
yield! visitTypar synTypar
966+
yield! visitType rhsType
967+
}
968+
969+
and visitStaticOptimizationConstraints = visitMulti visitStaticOptimizationConstraint
970+
971+
and visitExprAndBang (x : SynExprAndBang) : Stuff =
972+
match x with
973+
| SynExprAndBang(debugPointAtBinding, isUse, isFromSource, synPat, synExpr, range, synExprAndBangTrivia) ->
974+
seq {
975+
yield! visitPat synPat
976+
yield! visitExpr synExpr
977+
}
978+
916979
and visitExprs = visitMulti visitExpr
917980

918981
and visitSynAttribute (attribute : SynAttribute) : Stuff =
@@ -983,5 +1046,4 @@ let e = A1.a
9831046
open A1
9841047
let f = a
9851048

986-
module X = B
987-
X.b
1049+
module X = B

0 commit comments

Comments
 (0)