¿Cómo resolvería mejor este tipo específico de advertencia de 'Variable local no utilizada'?

Tengo una función que devuelve múltiples valores.

En algunos lugares los uso todos, mientras que en otros lugares solo uso algunos de ellos.

Este breve fragmento puede ilustrar el problema:

contract A {
    uint256 x;
    uint256 y;
    uint256 z;
    uint256 w;
    function getVars() external constant returns (uint256, uint256, uint256, uint256) {
        return (x, y, z, w);
    }
}

contract B {
    A private a;

    function func1() external {
        var (x, y, z, w) = a.getVars();
        // Do something with all variables (x, y, z, w)
    }

    function func2() external {
        var (x, y, z, w) = a.getVars();
        // Do something with only some variables (x, y)
    }
}

Por lo cual, el compilador de Solidity me da las siguientes dos advertencias:

contracts/B.sol: Warning: Unused local variable.
        var (x, y, z, w) = a.getVars();
                   ^
contracts/B.sol: Warning: Unused local variable.
        var (x, y, z, w) = a.getVars();
                      ^

¿Cómo resolvería mejor este problema?

Por supuesto, podría simplemente "declararlos" explícitamente, por ejemplo:

    function func2() external {
        var (x, y, z, w) = a.getVars();
        (w, z); // Avoid compilation warning
        // Do something with only some variables (x, y)
    }

Pero parece una solución bastante fea.

¿ Hay un indicador de compilación que pueda aplicar solo para este archivo específico ?

O idealmente, ¿hay algo "mejor" que pueda poner en el código para revocar esta advertencia?

Gracias.

Respuestas (2)

Simplemente elimine la variable que está declarando, pero no use, por ejemplo

var (x, y,, w) = a.getVars();
Con la varpalabra clave en desuso en Solidity 0.4.21 y en adelante, después de reemplazarla con uint256, su solución ya no funciona. ¿Alguna sugerencia? Gracias

Ahora que 'var' está en desuso, parece que simplemente puede eliminar la palabra clave var y agregar el tipo entre corchetes:

(uint256 x, uint256 y,, uint256 w) = a.getVars();   

Parece funcionar para mi...