// methods using [deprecated_after]: struct Abc { x int } fn (a Abc) str() string { return 'Abc { x: ${a.x} }' } @[deprecated: 'custom message 1'] @[deprecated_after: '3000-11-01'] fn (a Abc) future() { dump(@METHOD) dump(a) } @[deprecated: 'custom message 2'] @[deprecated_after: '2021-03-01'] fn (a Abc) past() { dump(@METHOD) dump(a) } @[deprecated: 'custom message 3'] fn (a Abc) simply_deprecated() { dump(@METHOD) dump(a) } // functions using [deprecated_after]: @[deprecated: 'custom message 4'] @[deprecated_after: '3000-12-30'] fn future() { dump(@FN) } @[deprecated: 'custom message 5'] @[deprecated_after: '2021-03-01'] fn past() { dump(@FN) } @[deprecated: 'custom message 6'] @[deprecated_after: '1990-03-01'] fn ancient() { dump(@FN) } @[deprecated: 'custom message 7'] fn simply_deprecated() { dump(@FN) } @[deprecated] fn just_deprecated() { dump(@FN) } fn main() { future() past() simply_deprecated() just_deprecated() ancient() // a := Abc{} a.future() a.past() a.simply_deprecated() }