@@ -30,8 +30,7 @@ type PartialState<State, Props> =
30
30
| $Subtype < State >
31
31
| ( ( prevState : State , props : Props ) => $Subtype < State > ) ;
32
32
33
- // Callbacks are not validated until invocation
34
- type Callback = mixed ;
33
+ type Callback = ( ) => mixed ;
35
34
36
35
export type Update < State > = {
37
36
priorityLevel : PriorityLevel | null ,
@@ -69,7 +68,7 @@ let _queue1;
69
68
let _queue2 ;
70
69
71
70
function createUpdateQueue < State > (): UpdateQueue< State > {
72
- const queue : UpdateQueue = {
71
+ const queue : UpdateQueue < State > = {
73
72
first : null ,
74
73
last : null ,
75
74
hasForceUpdate : false ,
@@ -82,7 +81,7 @@ function createUpdateQueue<State>(): UpdateQueue<State> {
82
81
}
83
82
exports . createUpdateQueue = createUpdateQueue ;
84
83
85
- function cloneUpdate ( update : Update < State > ) : Update < State > {
84
+ function cloneUpdate < State > (update: Update< State > ): Update< State > {
86
85
return {
87
86
priorityLevel : update . priorityLevel ,
88
87
expirationTime : update . expirationTime ,
@@ -97,7 +96,7 @@ function cloneUpdate(update: Update<State>): Update<State> {
97
96
98
97
const COALESCENCE_THRESHOLD: ExpirationTime = 10;
99
98
100
- function insertUpdateIntoPosition (
99
+ function insertUpdateIntoPosition< State > (
101
100
queue: UpdateQueue< State > ,
102
101
update: Update< State > ,
103
102
insertAfter: Update< State > | null,
@@ -138,7 +137,7 @@ function insertUpdateIntoPosition(
138
137
139
138
// Returns the update after which the incoming update should be inserted into
140
139
// the queue, or null if it should be inserted at beginning.
141
- function findInsertionPosition (
140
+ function findInsertionPosition < State > (
142
141
queue: UpdateQueue< State > ,
143
142
update: Update< State > ,
144
143
): Update< State > | null {
@@ -214,7 +213,7 @@ function ensureUpdateQueues(fiber: Fiber) {
214
213
// we shouldn't make a copy.
215
214
//
216
215
// If the update is cloned, it returns the cloned update.
217
- function insertUpdateIntoFiber (
216
+ function insertUpdateIntoFiber < State > (
218
217
fiber : Fiber ,
219
218
update : Update < State > ,
220
219
currentTime : ExpirationTime ,
@@ -304,8 +303,8 @@ function insertUpdateIntoFiber(
304
303
}
305
304
exports.insertUpdateIntoFiber = insertUpdateIntoFiber;
306
305
307
- function insertUpdateIntoQueue (
308
- queue : UpdateQueue ,
306
+ function insertUpdateIntoQueue< State > (
307
+ queue: UpdateQueue< State > ,
309
308
update: Update< State > ,
310
309
currentTime: ExpirationTime,
311
310
) {
@@ -337,13 +336,14 @@ function getStateFromUpdate(update, instance, prevState, props) {
337
336
const partialState = update . partialState ;
338
337
if ( typeof partialState === 'function' ) {
339
338
const updateFn = partialState ;
339
+ // $FlowFixMe - Idk how to type State correctly.
340
340
return updateFn . call ( instance , prevState , props ) ;
341
341
} else {
342
342
return partialState ;
343
343
}
344
344
}
345
345
346
- function processUpdateQueue (
346
+ function processUpdateQueue< State > (
347
347
queue: UpdateQueue< State > ,
348
348
instance: mixed,
349
349
prevState: State,
@@ -382,6 +382,7 @@ function processUpdateQueue(
382
382
partialState = getStateFromUpdate ( update , instance , state , props ) ;
383
383
if ( partialState ) {
384
384
if ( dontMutatePrevState ) {
385
+ // $FlowFixMe - Idk how to type State properly.
385
386
state = Object . assign ( { } , state , partialState ) ;
386
387
} else {
387
388
state = Object . assign ( state , partialState ) ;
@@ -416,7 +417,7 @@ function processUpdateQueue(
416
417
}
417
418
exports . processUpdateQueue = processUpdateQueue ;
418
419
419
- function beginUpdateQueue (
420
+ function beginUpdateQueue < State > (
420
421
current: Fiber | null,
421
422
workInProgress: Fiber,
422
423
queue: UpdateQueue< State > ,
0 commit comments