@@ -30,8 +30,7 @@ type PartialState<State, Props> =
3030 | $Subtype < State >
3131 | ( ( prevState : State , props : Props ) => $Subtype < State > ) ;
3232
33- // Callbacks are not validated until invocation
34- type Callback = mixed ;
33+ type Callback = ( ) => mixed ;
3534
3635export type Update < State > = {
3736 priorityLevel : PriorityLevel | null ,
@@ -69,7 +68,7 @@ let _queue1;
6968let _queue2 ;
7069
7170function createUpdateQueue < State > (): UpdateQueue< State > {
72- const queue : UpdateQueue = {
71+ const queue : UpdateQueue < State > = {
7372 first : null ,
7473 last : null ,
7574 hasForceUpdate : false ,
@@ -82,7 +81,7 @@ function createUpdateQueue<State>(): UpdateQueue<State> {
8281}
8382exports . createUpdateQueue = createUpdateQueue ;
8483
85- function cloneUpdate ( update : Update < State > ) : Update < State > {
84+ function cloneUpdate < State > (update: Update< State > ): Update< State > {
8685 return {
8786 priorityLevel : update . priorityLevel ,
8887 expirationTime : update . expirationTime ,
@@ -97,7 +96,7 @@ function cloneUpdate(update: Update<State>): Update<State> {
9796
9897const COALESCENCE_THRESHOLD: ExpirationTime = 10;
9998
100- function insertUpdateIntoPosition (
99+ function insertUpdateIntoPosition< State > (
101100 queue: UpdateQueue< State > ,
102101 update: Update< State > ,
103102 insertAfter: Update< State > | null,
@@ -138,7 +137,7 @@ function insertUpdateIntoPosition(
138137
139138// Returns the update after which the incoming update should be inserted into
140139// the queue, or null if it should be inserted at beginning.
141- function findInsertionPosition (
140+ function findInsertionPosition < State > (
142141 queue: UpdateQueue< State > ,
143142 update: Update< State > ,
144143): Update< State > | null {
@@ -214,7 +213,7 @@ function ensureUpdateQueues(fiber: Fiber) {
214213// we shouldn't make a copy.
215214//
216215// If the update is cloned, it returns the cloned update.
217- function insertUpdateIntoFiber (
216+ function insertUpdateIntoFiber < State > (
218217 fiber : Fiber ,
219218 update : Update < State > ,
220219 currentTime : ExpirationTime ,
@@ -304,8 +303,8 @@ function insertUpdateIntoFiber(
304303}
305304exports.insertUpdateIntoFiber = insertUpdateIntoFiber;
306305
307- function insertUpdateIntoQueue (
308- queue : UpdateQueue ,
306+ function insertUpdateIntoQueue< State > (
307+ queue: UpdateQueue< State > ,
309308 update: Update< State > ,
310309 currentTime: ExpirationTime,
311310) {
@@ -337,13 +336,14 @@ function getStateFromUpdate(update, instance, prevState, props) {
337336 const partialState = update . partialState ;
338337 if ( typeof partialState === 'function' ) {
339338 const updateFn = partialState ;
339+ // $FlowFixMe - Idk how to type State correctly.
340340 return updateFn . call ( instance , prevState , props ) ;
341341 } else {
342342 return partialState ;
343343 }
344344}
345345
346- function processUpdateQueue (
346+ function processUpdateQueue< State > (
347347 queue: UpdateQueue< State > ,
348348 instance: mixed,
349349 prevState: State,
@@ -382,6 +382,7 @@ function processUpdateQueue(
382382 partialState = getStateFromUpdate ( update , instance , state , props ) ;
383383 if ( partialState ) {
384384 if ( dontMutatePrevState ) {
385+ // $FlowFixMe - Idk how to type State properly.
385386 state = Object . assign ( { } , state , partialState ) ;
386387 } else {
387388 state = Object . assign ( state , partialState ) ;
@@ -416,7 +417,7 @@ function processUpdateQueue(
416417}
417418exports . processUpdateQueue = processUpdateQueue ;
418419
419- function beginUpdateQueue (
420+ function beginUpdateQueue < State > (
420421 current: Fiber | null,
421422 workInProgress: Fiber,
422423 queue: UpdateQueue< State > ,
0 commit comments