1 // https://issues.dlang.org/show_bug.cgi?id=22668
3 // Overrides with same deprecated'ness are allowed
7 deprecated void foo() {}
11 deprecated void bar() {}
14 class SameChild
: SameParent
16 deprecated override void foo() {}
17 override void foo(int) {}
19 override void bar(int) {}
20 deprecated override void bar() {}
24 Only the parent declaration is deprecated
28 compilable/deprecated_override.d(44): Deprecation: `deprecated_override.IntroducingChild.foo` is overriding the deprecated method `deprecated_override.IntroducingParent.foo`
29 compilable/deprecated_override.d(48): Deprecation: `deprecated_override.IntroducingChild.bar` is overriding the deprecated method `deprecated_override.IntroducingParent.bar`
33 class IntroducingParent
35 deprecated void foo() {}
39 deprecated void bar() {}
42 class IntroducingChild
: IntroducingParent
44 override void foo() {}
45 override void foo(int) {}
47 override void bar(int) {}
48 override void bar() {}
51 // Unrelated to this path but should this error as well?
53 class IntroducingGrandchild
: IntroducingChild
55 override void foo() {}
56 override void foo(int) {}
58 override void bar(int) {}
59 override void bar() {}
63 Only the overriding declaration is deprecated
67 compilable/deprecated_override.d(83): Deprecation: `deprecated_override.OverrideChild.foo` cannot be marked as `deprecated` because it is overriding a function in the base class
68 compilable/deprecated_override.d(87): Deprecation: `deprecated_override.OverrideChild.bar` cannot be marked as `deprecated` because it is overriding a function in the base class
81 class OverrideChild
: OverrideParent
83 deprecated override void foo() {}
84 override void foo(int) {}
86 override void bar(int) {}
87 deprecated override void bar() {}
90 class OverrideGrandChild
: OverrideChild
92 deprecated override void foo() {}
93 override void foo(int) {}
95 override void bar(int) {}
96 deprecated override void bar() {}