private static < DeclaredT , RuntimeT > TypeCodec < DeclaredT > uncheckedCast ( TypeCodec < RuntimeT > codec ) { @ SuppressWarnings ( "unchecked" ) TypeCodec < DeclaredT > result = ( TypeCodec < DeclaredT > ) codec ; return result ; }
We call this after validating the types so we know the cast will never fail .