O que acontece se eu retornar antes do final do uso da instrução? O descarte será chamado?

Eu tenho o seguinte código

using(MemoryStream ms = new MemoryStream())
{
     //code
     return 0;
}

odispose() método é chamado no final deusing chaves de declaração} direito? Desde que eureturn antes do final dousing declaração, oMemoryStream objeto ser descartado corretamente? o que acontece aqui?