@@ -157,7 +157,7 @@ type E =
157157 | UnionCaseSet of FSharpExpr * FSharpType * FSharpUnionCase * FSharpField * FSharpExpr
158158 | UnionCaseTag of FSharpExpr * FSharpType
159159 | UnionCaseTest of FSharpExpr * FSharpType * FSharpUnionCase
160- | TraitCall of FSharpType list * string * FSharpType list * FSharpType list * FSharpExpr list
160+ | TraitCall of FSharpType list * string * Ast.MemberFlags * FSharpType list * FSharpType list * FSharpExpr list
161161 | NewTuple of FSharpType * FSharpExpr list
162162 | TupleGet of FSharpType * int * FSharpExpr
163163 | Coerce of FSharpType * FSharpExpr
@@ -244,7 +244,7 @@ and [<Sealed>] FSharpExpr (cenv, f: (unit -> FSharpExpr) option, e: E, m:range,
244244 for (_ targetVars, targetExpr) in targetCases do yield targetExpr ]
245245 | E.DecisionTreeSuccess (_ targetNumber, targetArgs) -> targetArgs
246246 | E.UnionCaseSet ( obj, _ unionType, _ unionCase, _ unionField, valueExpr) -> [ yield obj; yield valueExpr ]
247- | E.TraitCall (_ sourceTypes, _ traitName, _ paramTypes, _ retTypes, args) -> args
247+ | E.TraitCall (_ sourceTypes, _ traitName, _ memberFlags , _ paramTypes, _ retTypes, args) -> args
248248 | E.Unused -> [] // unexpected
249249
250250
@@ -706,12 +706,12 @@ module FSharpExprConvert =
706706 let typR = ConvType cenv ( mkAppTy tycr tyargs)
707707 E.UnionCaseTag( ConvExpr cenv env arg1, typR)
708708
709- | TOp.TraitCall ( TTrait( tys, nm,_ memFlags , argtys,_ rty,_ colution)),_,_ ->
709+ | TOp.TraitCall ( TTrait( tys, nm, memFlags , argtys,_ rty,_ colution)),_,_ ->
710710 let tysR = ConvTypes cenv tys
711711 let tyargsR = ConvTypes cenv tyargs
712712 let argtysR = ConvTypes cenv argtys
713713 let argsR = ConvExprs cenv env args
714- E.TraitCall( tysR, nm, argtysR, tyargsR, argsR)
714+ E.TraitCall( tysR, nm, memFlags , argtysR, tyargsR, argsR)
715715
716716 | TOp.RefAddrGet,[ ty],[ e] ->
717717 let replExpr = mkRecdFieldGetAddrViaExprAddr( e, mkRefCellContentsRef cenv.g, [ ty], m)
@@ -1003,7 +1003,5 @@ module BasicPatterns =
10031003 let (| DecisionTree | _ |) ( e : FSharpExpr ) = match e.E with E.DecisionTree ( a, b) -> Some ( a, b) | _ -> None
10041004 let (| DecisionTreeSuccess | _ |) ( e : FSharpExpr ) = match e.E with E.DecisionTreeSuccess ( a, b) -> Some ( a, b) | _ -> None
10051005 let (| UnionCaseSet | _ |) ( e : FSharpExpr ) = match e.E with E.UnionCaseSet ( a, b, c, d, e) -> Some ( a, b, c, d, e) | _ -> None
1006- let (| TraitCall | _ |) ( e : FSharpExpr ) = match e.E with E.TraitCall ( a, b, c, d, e) -> Some ( a, b, c, d, e) | _ -> None
1007-
1008-
1006+ let (| TraitCall | _ |) ( e : FSharpExpr ) = match e.E with E.TraitCall ( a, b, c, d, e, f) -> Some ( a, b, c, d, e, f) | _ -> None
10091007
0 commit comments