Buggy code:
private IType inferType ( ITypeVariable typeVar , IValue instance , IArguments arguments ) { } @ Override public void checkCall ( MarkerList markers , ICodePosition position , IContext context , IValue instance , IArguments arguments , ITypeContext typeContext ) { } private void checkMutating ( MarkerList markers , IValue instance ) { } @ Override public boolean hasTypeVariables ( ) { } @ Override public boolean isIntrinsic ( ) { } @ Override public String getDescriptor ( ) { } @ Override public String getSignature ( ) { } @ Override public String [ ] getExceptions ( ) { } @ Override public void write ( ClassWriter writer ) throws BytecodeException { int modifiers = ( this . modifiers ) & 65535 ; if ( ( this . value ) == null ) { modifiers |= Modifiers . ABSTRACT ; } MethodWriter mw = new dyvil . tools . compiler . backend . MethodWriterImpl ( writer , writer . visitMethod ( modifiers , this . name . qualified , this . getDescriptor ( ) , this . getSignature ( ) , this . getExceptions ( ) ) ) ; if ( ( ( this . modifiers ) & ( Modifiers . STATIC ) ) == 0 ) { mw . setThisType ( this . theClass . getInternalName ( ) ) ; } for ( int i = 0 ; i < ( this . annotationCount ) ; i ++ ) { this . annotations [ i ] . write ( mw ) ; } if ( ( ( this . modifiers ) & ( Modifiers . INLINE ) ) == ( Modifiers . INLINE ) ) { mw . addAnnotation ( "Ldyvil//annotation//inline;" , false ) ; } if ( ( ( this . modifiers ) & ( Modifiers . INFIX ) ) == ( Modifiers . INFIX ) ) { mw . addAnnotation ( "Ldyvil//annotation//infix;" , false ) ; } if ( ( ( this . modifiers ) & ( Modifiers . PREFIX ) ) == ( Modifiers . PREFIX ) ) { mw . addAnnotation ( "Ldyvil//annotation//prefix;" , false ) ; } if ( ( ( this . modifiers ) & ( Modifiers . DEPRECATED ) ) == ( Modifiers . DEPRECATED ) ) { mw . addAnnotation ( "Ljava//lang//Deprecated;" , true ) ; } if ( ( ( this . modifiers ) & ( Modifiers . SEALED ) ) == ( Modifiers . SEALED ) ) { mw . addAnnotation ( "Ldyvil//annotation//sealed;" , false ) ; } for ( int i = 0 ; i < ( this . parameterCount ) ; i ++ ) { this . parameters [ i ] . write ( mw ) ; } Label start = new Label ( ) ; Label end = new Label ( ) ; if ( ( this . value ) != null ) { mw . begin ( ) ; mw . writeLabel ( start ) ; if ( ( this . type ) == ( Types . VOID ) ) { this . value . writeStatement ( mw ) ; } else { this . value . writeExpression ( mw ) ; } mw . writeLabel ( end ) ; mw . end ( this . type ) ; } for ( int i = 0 ; i < ( this . parameterCount ) ; i ++ ) { IParameter param = this . parameters [ i ] ; mw . writeLocal ( param . getIndex ( ) , param . getName ( ) . qualified , param . getDescription ( ) , param . getSignature ( ) , start , end ) ; } if ( ( ( this . modifiers ) & ( Modifiers . STATIC ) ) != 0 ) { return ; } <START_BUG> mw . writeLocal ( 0 , "this" , this . theClass . getInternalName ( ) , null , start , end ) ; <END_BUG> if ( ( this . overrideMethod ) == null ) { return ; } if ( this . descriptor . equals ( this . overrideMethod . getDescriptor ( ) ) ) { return ; } mw = new dyvil . tools . compiler . backend . MethodWriterImpl ( writer , writer . visitMethod ( ( ( modifiers | ( Modifiers . SYNTHETIC ) ) | ( Modifiers . BRIDGE ) ) , this . name . qualified , this . overrideMethod . getDescriptor ( ) , this . overrideMethod . getSignature ( ) , this . overrideMethod . getExceptions ( ) ) ) ; start = new Label ( ) ; end = new Label ( ) ; mw . begin ( ) ; mw . setThisType ( this . theClass . getInternalName ( ) ) ; mw . writeVarInsn ( ALOAD , 0 ) ; for ( int i = 0 ; i < ( this . parameterCount ) ; i ++ ) { IParameter param = this . overrideMethod . getParameter ( i ) ; IType type1 = this . parameters [ i ] . getType ( ) ; IType type2 = param . getType ( ) ; param . write ( mw ) ; mw . writeVarInsn ( type1 . getLoadOpcode ( ) , param . getIndex ( ) ) ; if ( ! ( type1 . equals ( type2 ) ) ) { mw . writeTypeInsn ( CHECKCAST , type1 . getInternalName ( ) ) ; } } mw . writeInvokeInsn ( INVOKEVIRTUAL , this . theClass . getInternalName ( ) , this . name . qualified , this . getDescriptor ( ) , false ) ; mw . writeInsn ( this . type . getReturnOpcode ( ) ) ; mw . end ( ) ; } @ Override public void writeCall ( MethodWriter writer , IValue instance , IArguments arguments , IType type ) throws BytecodeException { }

Fix:
mw . writeLocal ( 0 , "this" , ( ( 'L' + ( this . theClass . getInternalName ( ) ) ) + ';' ) , null , start , end ) ;