@@ -83,7 +83,7 @@ type EventWrapper<'Delegate, 'Args> = delegate of 'Delegate * objnull * 'Args ->
83
83
type Event < 'Delegate , 'Args
84
84
when 'Delegate: delegate < 'Args , unit > and 'Delegate :> System.Delegate and 'Delegate : not struct >() =
85
85
86
- let mutable multicast : 'Delegate = Unchecked.defaultof<_>
86
+ let mutable multicast : 'Delegate | null = Unchecked.defaultof<_>
87
87
88
88
static let mi , argTypes =
89
89
let instanceBindingFlags =
@@ -146,10 +146,10 @@ type Event<'Delegate, 'Args
146
146
" <published event>"
147
147
interface IEvent< 'Delegate, 'Args> with
148
148
member e.AddHandler ( d ) =
149
- Atomic.setWith ( fun value -> System.Delegate.Combine( value, d) :?> 'Delegate ) & multicast
149
+ Atomic.setWith ( fun value -> System.Delegate.Combine( value, d) :?> ( 'Delegate | null ) ) & multicast
150
150
151
151
member e.RemoveHandler ( d ) =
152
- Atomic.setWith ( fun value -> System.Delegate.Remove( value, d) :?> 'Delegate ) & multicast
152
+ Atomic.setWith ( fun value -> System.Delegate.Remove( value, d) :?> ( 'Delegate | null ) ) & multicast
153
153
interface System.IObservable< 'Args> with
154
154
member e.Subscribe ( observer ) =
155
155
let obj = new EventDelegee< 'Args>( observer)
@@ -166,7 +166,7 @@ type Event<'Delegate, 'Args
166
166
167
167
[<CompiledName( " FSharpEvent`1" ) >]
168
168
type Event < 'T > =
169
- val mutable multicast : Handler < 'T >
169
+ val mutable multicast : Handler < 'T > | null
170
170
new () = { multicast = null }
171
171
172
172
member x.Trigger ( arg : 'T ) =
@@ -180,10 +180,10 @@ type Event<'T> =
180
180
" <published event>"
181
181
interface IEvent< 'T> with
182
182
member e.AddHandler ( d ) =
183
- Atomic.setWith ( fun value -> System.Delegate.Combine( value, d) :?> Handler < 'T >) & x .multicast
183
+ Atomic.setWith ( fun value -> System.Delegate.Combine( value, d) :?> Handler < 'T > | null ) & x .multicast
184
184
185
185
member e.RemoveHandler ( d ) =
186
- Atomic.setWith ( fun value -> System.Delegate.Remove( value, d) :?> Handler < 'T >) & x .multicast
186
+ Atomic.setWith ( fun value -> System.Delegate.Remove( value, d) :?> Handler < 'T > | null ) & x .multicast
187
187
interface System.IObservable< 'T> with
188
188
member e.Subscribe ( observer ) =
189
189
let h = new Handler<_>( fun sender args -> observer.OnNext( args))
0 commit comments