From 4ebacd35d52e3838aa1e936cf6bb93f339d8e70f Mon Sep 17 00:00:00 2001 From: k-hara Date: Thu, 2 Apr 2015 21:25:06 +0900 Subject: [PATCH] fix Issue 13985 - Wrong code when using "super" to call final interface method --- test/runnable/xtest46.d | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/test/runnable/xtest46.d b/test/runnable/xtest46.d index 951774e0cdf7..11a59db1db2d 100644 --- a/test/runnable/xtest46.d +++ b/test/runnable/xtest46.d @@ -7375,6 +7375,42 @@ class Foo14165 this(int i) {} } +/***************************************************/ +// 13985 + +interface I13985 +{ + void m1(); + void m2(); + void m3(); + + final void mf() + { + m3(); + } +} + +class C13985 : I13985 +{ + void m1() {} + void m2() {} + void m3() {} +} + +class D13985 : C13985 +{ + void ml() + { + super.mf(); + } +} + +void test13985() +{ + auto d = new D13985(); + d.ml(); +} + /***************************************************/ // 14211 @@ -7704,6 +7740,7 @@ int main() test13472(); test13476(); test13952(); + test13985(); test14211(); printf("Success\n");