// 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() }