@SuppressWarnings("unchecked")
  @GwtIncompatible("ObjectInputStream")
  public void restoreContents(ObjectInputStream in) throws IOException, ClassNotFoundException {
    eachRefTypeIndexedByProperty = (Map<String, Map<String, ObjectType>>) in.readObject();
    interfaceToImplementors = (Multimap<String, FunctionType>) in.readObject();
    typesIndexedByProperty = (Multimap<String, JSType>) in.readObject();
  }
@ SuppressWarnings ( "unchecked" ) @ GwtIncompatible ( "ObjectInputStream" ) public void restoreContents ( ObjectInputStream in ) throws IOException , ClassNotFoundException { eachRefTypeIndexedByProperty = ( Map < String , Map < String , ObjectType > > ) in . readObject ( ) ; interfaceToImplementors = ( Multimap < String , FunctionType > ) in . readObject ( ) ; typesIndexedByProperty = ( Multimap < String , JSType > ) in . readObject ( ) ; }
Restores the derived state.

Note: This should be only used when deserializing the compiler state and needs to be done at
the end, after deserializing CompilerState.