Skip to content

Commit 1d86d98

Browse files
authored
Merge pull request #595 from alfonsogarciacaro/static-trait-calls
Expose MemberFlags for Expr TraitCall
2 parents 8706db0 + eb5c20b commit 1d86d98

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

src/fsharp/vs/Exprs.fs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

src/fsharp/vs/Exprs.fsi

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,5 @@ module BasicPatterns =
204204
val (|ObjectExpr|_|) : FSharpExpr -> (FSharpType * FSharpExpr * FSharpObjectExprOverride list * (FSharpType * FSharpObjectExprOverride list) list) option
205205

206206
/// Matches expressions for an unresolved call to a trait
207-
val (|TraitCall|_|) : FSharpExpr -> (FSharpType list * string * FSharpType list * FSharpType list * FSharpExpr list) option
208-
207+
val (|TraitCall|_|) : FSharpExpr -> (FSharpType list * string * Ast.MemberFlags * FSharpType list * FSharpType list * FSharpExpr list) option
209208

0 commit comments

Comments
 (0)