Бесконечная оценка газа, вызванная типом внутренней функции

Когда я помечаю простую функцию с типом internal , remix выдает предупреждение о бесконечной оценке газа. Без этого типа все нормально. Пожалуйста, вы знаете, почему?

function half(uint a) { uint b = a/2; //... }-> Оценка газа для "половины (uint256)": "230"

function half(uint a) internal { uint b = a/2; //... }-> Оценка газа для «половины (uint256)»: «бесконечно»

«Из-за этого я не могу развернуть свой контракт». Предупреждения компилятора обычно не мешают вам развернуть ваш контракт. Можете ли вы объяснить, почему вы не можете развернуть?
мой плохой, в деплойнере я написал, что сначала проверяю газ

Ответы (1)

Что-то еще происходит в функции, потому что у меня не было этой проблемы в ремиксе.

pragma solidity ^0.4.19;

contract StackEthereumTholoz {

    function start(uint _int) public pure returns (uint) {
        return half(_int);
    }

    function half(uint _a) internal pure returns (uint) {
        uint b = _a/2;  
        return b;
    }

}

Газ: 72


[Обновление 1]

Итак, основываясь на вашем коде (и минимальном примере кода), когда internalконтракт фактически не используется, Remix не может фактически рассчитать стоимость газа. Он автоматически установит его бесконечным по умолчанию.

Привет ! Вот мой минимальный пример: pragma solidity ^0.4.19; contract Infinite { function half(uint a) internal{ uint b = a/2; } }даже когда я добавляю чистый, он продолжает выдавать бесконечную оценку газа .
@Tholoz Ответ обновлен, чтобы объяснить, почему вы получаете бесконечность с этим минимальным примером.