@@ -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
624624and 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
627632and visitSynBinding ( x : SynBinding ) : Stuff =
628633 match x with
@@ -665,7 +670,13 @@ and visitSynLongIdent (ident : SynLongIdent) : Stuff =
665670 [ ident]
666671
667672and 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
670681and visitSynMatchClauses = visitMulti visitSynMatchClause
671682
@@ -675,7 +686,7 @@ and visitExprOnly (x : SeqExprOnly) : Stuff =
675686and 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
720729and 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+
916979and visitExprs = visitMulti visitExpr
917980
918981and visitSynAttribute ( attribute : SynAttribute ) : Stuff =
@@ -983,5 +1046,4 @@ let e = A1.a
9831046open A1
9841047let f = a
9851048
986- module X = B
987- X.b
1049+ module X = B
0 commit comments