Есть класс:
Должно было быть так:
Но описался, и написал так:
И получил Stack Owerflow.
Что в общем-то - логично.
Но всё равно - смешно.
Я бы лично отсёк бы это на уровне компилятора. Ибо там - "делать нечего".
Есть "дерево разбора" и есть "его бесконечная рекурсия".
Ну и полный коммит - https://bitbucket.org/lulinalex/mindstream/commits/879c8e09bb457061e4fce20e238e9b1e151f387e
Он тоже по-моему - интересен.
TmsShapeUID = record rValue: Int64; public class operator Add(anUID: TmsShapeUID; aDelta: Int64): TmsShapeUID; class operator Implicit(aValue: Int64): TmsShapeUID; end;//TmsShapeUID
Должно было быть так:
class operator TmsShapeUID.Implicit(aValue: Int64): TmsShapeUID; begin Result.rValue := aValue; end;
Но описался, и написал так:
class operator TmsShapeUID.Implicit(aValue: Int64): TmsShapeUID; begin Result := aValue; end;
И получил Stack Owerflow.
Что в общем-то - логично.
Но всё равно - смешно.
Я бы лично отсёк бы это на уровне компилятора. Ибо там - "делать нечего".
Есть "дерево разбора" и есть "его бесконечная рекурсия".
Ну и полный коммит - https://bitbucket.org/lulinalex/mindstream/commits/879c8e09bb457061e4fce20e238e9b1e151f387e
Он тоже по-моему - интересен.
Комментариев нет:
Отправить комментарий