Здравствуйте, ionoy, Вы писали:
I>Такое реально сделать? Я понимаю, что можно самому иерархию классов замутить, но может быть есть более человеческий способ?
Такого нет. Но и наследование тут не нужно. Просто с дублируй поле Ast у обоих вхождений. А обобщенную обработку можно сделать через паттерн-матчинг.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, ionoy, Вы писали:
I>>Такое реально сделать? Я понимаю, что можно самому иерархию классов замутить, но может быть есть более человеческий способ?
VD>Такого нет. Но и наследование тут не нужно. Просто с дублируй поле Ast у обоих вхождений. А обобщенную обработку можно сделать через паттерн-матчинг.
У меня куча кода завязана на Build.Result, теперь придётся все эти места искать и дублировать обработку. Поэтому я и пытаюсь найти более простой способ.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, ionoy, Вы писали:
I>>Такое реально сделать? Я понимаю, что можно самому иерархию классов замутить, но может быть есть более человеческий способ?
VD>Такого нет. Но и наследование тут не нужно. Просто с дублируй поле Ast у обоих вхождений. А обобщенную обработку можно сделать через паттерн-матчинг.
Грубо говоря мне надо протащить дополнительные сообщения из низкоуровнего кода в главный обработчик. Может просто завести поле, которое не нужно передавать параметром конструктора?
Здравствуйте, ionoy, Вы писали:
I>Грубо говоря мне надо протащить дополнительные сообщения из низкоуровнего кода в главный обработчик. Может просто завести поле, которое не нужно передавать параметром конструктора?
В опции варианта можно завести ещё один конструктор. И инициализировать его значением по умолчанию.
Примерно так: https://github.com/rsdn/nitra/blob/master/Nitra/Nitra.Grammar/Model/Rule.n#L78
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, ionoy, Вы писали:
I>>Грубо говоря мне надо протащить дополнительные сообщения из низкоуровнего кода в главный обработчик. Может просто завести поле, которое не нужно передавать параметром конструктора? WH>В опции варианта можно завести ещё один конструктор. И инициализировать его значением по умолчанию. WH>Примерно так: WH>https://github.com/rsdn/nitra/blob/master/Nitra/Nitra.Grammar/Model/Rule.n#L78