private void paramCompare(Method aMethod, ExprList exprList) {
    // Se o metodo nao tiver parametros E nao houver parametros a serem passados
    // simplesmente retorno
    if (aMethod.getParamList().getSize() == 0 && exprList == null) {
      return;
    }

    // SEM - comparando o NUMERO de parametros passados vs. parametros 
    // que o metodo espera
    if ((aMethod.getParamList().getSize() == 0 && exprList == null)
            || (aMethod.getParamList().getSize() != exprList.getSize())) {
      error.show("Param count mismatch");
    }

    // SEM - comparando o TIPO dos parametros
    for (int i = 0; i < exprList.getSize(); i++) {
      Variable expParam = aMethod.getParamList().get(i);
      Expr pasParam = exprList.getElement(i);
      // verifico se os parametros sao do mesmo tipo ou se tem a mesma heranca
      if ((pasParam.getType() instanceof ClassDec)
              && !((ClassDec) pasParam.getType()).isChildOf(expParam.getType().getName())) {
        error.show("Param type mismatch: '" + expParam.getType().getName() + "' expected. '" + pasParam.getType().getName() + "' given.");
      }
    }
  }