Skip to content

Commit 5fb8a9a

Browse files
committed
Allow for a variables list
1 parent f6abc0d commit 5fb8a9a

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

src/FSharp.Control.TaskSeq.Test/CEPoC.fs

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ module CEs =
2020
Variables: 'Vars
2121
}
2222

23-
type M<'T> = M<'T, unit>
23+
type M<'T> = M<'T, obj List>
2424

2525
type CE() =
2626

@@ -29,7 +29,7 @@ module CEs =
2929
IsMember = None
3030
IsMember2 = false
3131
Members = []
32-
Variables = ()
32+
Variables = []
3333
}
3434

3535
member _.Combine(model1: M<'T>, model2: M<'T>) : M<'T> =
@@ -53,7 +53,7 @@ module CEs =
5353
IsMember = newIsMember
5454
IsMember2 = newIsMember2
5555
Members = List.append model1.Members model2.Members
56-
Variables = ()
56+
Variables = []
5757
}
5858

5959
member _.Delay(f) : M<'T, 'Vars> = f ()
@@ -63,7 +63,7 @@ module CEs =
6363
IsMember = model.IsMember
6464
IsMember2 = model.IsMember2
6565
Members = model.Members
66-
Variables = ()
66+
Variables = []
6767
}
6868

6969
member this.For(methods, f) : M<'T> =
@@ -85,7 +85,7 @@ module CEs =
8585
IsMember = None
8686
IsMember2 = false
8787
Members = [ item ]
88-
Variables = ()
88+
Variables = []
8989
}
9090

9191
// Only for packing/unpacking the implicit variable space
@@ -127,9 +127,12 @@ module CEs =
127127
[<CustomOperation("Name", MaintainsVariableSpaceUsingBind = true)>]
128128
member _.setName(model: M<'T, 'Vars>, [<ProjectionParameter>] name: ('Vars -> string)) : M<'T, 'Vars> = {
129129
model with
130-
Name = Some(name model.Variables)
130+
Name = let m = Unchecked.defaultof<M<_, _>> in Some(name m.Variables)
131131
}
132132

133+
//[<CustomOperation("Name", MaintainsVariableSpaceUsingBind = true)>]
134+
//member _.setName(model: M<'T, 'Vars * 'Vars2>, [<ProjectionParameter>] name: ('Vars -> string)) : M<'T, 'Vars> = Unchecked.defaultof<_>
135+
133136
[<CustomOperation("IsMember", MaintainsVariableSpaceUsingBind = true)>]
134137
member _.setIsMember(model: M<'T, 'Vars>, [<ProjectionParameter>] isMember: ('Vars -> bool)) : M<'T, 'Vars> = {
135138
model with
@@ -161,6 +164,14 @@ module CEs =
161164
module Test =
162165
let x: M<double> = ce { Name "Fred" }
163166

167+
let queryTest = query {
168+
for i in [ 1..10 ] do
169+
where (i < 10)
170+
minBy (i + -i)
171+
//headOrDefault
172+
//sumBy 10
173+
}
174+
164175
let x2: M<double> = ce {
165176
Name "Fred"
166177
IsMember true
@@ -186,7 +197,7 @@ module CEs =
186197
}
187198

188199
let z5: M<double> = ce {
189-
Name "a"
200+
Name("a" + "b")
190201
Name "b"
191202
//42 // removing this line results in compiler error
192203
}
@@ -203,9 +214,18 @@ module CEs =
203214
}
204215

205216
let z7: M<double> = ce {
206-
let x = "a"
207-
Name(x + "b")
208-
Member 4.0
217+
let a = "a"
218+
let b = "b"
219+
let c = "c"
220+
let! (d: int) = Unchecked.defaultof<_>
221+
let e = ""
222+
let! (f: System.Guid) = Unchecked.defaultof<_>
223+
//Name("b")
224+
//Member 4.0
225+
//return ()
226+
//let x = "b"
227+
//let! x = Unchecked.defaultof<_>
228+
return []
209229
}
210230

211231
let z8: M<double> = ce {

src/FSharp.Control.TaskSeq.Test/FSharp.Control.TaskSeq.Test.fsproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
<ItemGroup>
6464
<!-- align test project with minimal required version for TaskSeq, which is 6.0.1 at the moment -->
6565
<PackageReference Update="FSharp.Core" Version="6.0.1" />
66+
<PackageReference Include="FSharp.CommandLine" Version="3.3.3805.29705" />
6667
<PackageReference Include="FsUnit.xUnit" Version="6.0.0" />
6768
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
6869
<PackageReference Include="xunit" Version="2.7.0" />

0 commit comments

Comments
 (0)