First pass super keyword implementation #524
                
     Open
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
"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.