patch 9.0.1605: crash when calling method on super in child constructor
Problem: Crash when calling method on super in child constructor. (Israel
Chauca Fuentes)
Solution: Clear the type list. (Ernie Rael, closes #12489, closes #12471)
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index d89b14e..52812ea 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -1636,6 +1636,28 @@
END
v9.CheckScriptSuccess(lines)
unlet g:result
+
+ # Using super, Child invokes Base method which has optional arg. #12471
+ lines =<< trim END
+ vim9script
+
+ class Base
+ this.success: bool = false
+ def Method(arg = 0)
+ this.success = true
+ enddef
+ endclass
+
+ class Child extends Base
+ def new()
+ super.Method()
+ enddef
+ endclass
+
+ var obj = Child.new()
+ assert_equal(true, obj.success)
+ END
+ v9.CheckScriptSuccess(lines)
enddef