Я вызываю процедуру с аргументом integer_64. Я реализовал класс WATT, который может создать его из INTEGER_64, и кажется, что выполнение останавливается, когда достигается эта точка, где я ошибаюсь?
Catcall detected for argument#1
args': ожидал TUPLE [!WATT], но получил TUPLE [INTEGER_64]`
Прикрепленный кейс (обновление)
На самом деле при проверке синтаксиса
attached {INTEGER_64} my_watt_object as l_int
это тоже не проходит... это ожидаемое поведение?
На самом деле мне кажется, что семантические случаи одинаковы, которые должны подтвердить шаг соответствия... для меня (но, похоже, это не так для определения язык между соответствием/соответствием), в котором говорится
Соответствие и конвертируемость исключают друг друга, стр. 87
Действительно ли правило соответствия для типа, который определяет как convert
тип, для другого типа, который является моим случаем от WATT до INTEGER_64?
set_charge
, который принимает WATT с аргументами INTEGER_64. Таким образом, сообщение о вызове ожидается. Для вашего обновления не применяется неявное преобразование для объекта test local (иначе было бы невозможно сделатьif attached {INTEGER_64} ... elseif attached {WATT} ...
). - person Jocelyn   schedule 03.12.2018