feat: include method arity in missing method runtime error messages

Add helper functions `canonicalSymbol` and `methodArgumentsString` to extract and format the argument count from symbol names. Update the runtime error message in `runInterpreter` to append the arity (e.g., "with 0 arguments", "with 2 arguments", "with 1 argument") when a class does not implement a method. Add new test cases for missing methods with one, two, and eleven arguments, and update all existing test expectations to include the arity suffix.
This commit is contained in:
Gavin Schulz
2015-01-04 19:42:11 +00:00
parent 1951059c8f
commit 9fe43fec45
10 changed files with 64 additions and 16 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
class Base {}
class Derived is Base {
foo { super.doesNotExist } // expect runtime error: Base does not implement method 'doesNotExist'.
foo { super.doesNotExist } // expect runtime error: Base does not implement method 'doesNotExist' with 0 arguments.
}
(new Derived).foo