Skip to content

Conversation

@NiccoloAbate
Copy link

"super" keyword implementation, based on the method invocation part of the Java super keyword spec: https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#d5e31535

i.e. super.foo() calls the parent version of the function.

Here are the test chuck scripts that I put together for the keyword, including scripts to trigger compile errors and scripts to test the runtime functionality:
tests.zip

When possible, I like to have tests that define the spec. Ideally, there would be a more rigorous testing setup that actually asserts outcomes, whereas this just prints output and relies on the user to evaluate the output.

I put this feature together by just reverse engineering the "this" keyword and expanding from there. With that in mind, I think there are some things that probably are not done correctly / optimally. Namely, I think the dynamic_cast to check if the last instruction was "super" seems suspect.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant