question: public void paramValueAvaliable ( List < SParameter > params , List < Instruction > instructions , SemanticScope scope , LineCol lineCol ) throws SyntaxException { for ( SParameter param : params ) { if ( param . isNotEmpty ( ) ) { Ins . Nop nop = new Ins . Nop ( ) ; Ins . IfNe ifNe = new Ins . IfNe ( cast ( BoolTypeDef . get ( ) , new Ins . TLoad ( param , scope , lineCol ) , lineCol ) , nop , lineCol ) ; instructions . add ( ifNe ) ; instructions . add ( new Ins . AThrow ( new Ins . New ( getJava_lang_IllegalArgumentException_cons ( ) , lineCol ) , lineCol ) ) ; instructions . add ( nop ) ; } else if ( param . isNotNull ( ) ) { if ( param . type ( ) instanceof PrimitiveTypeDef ) { continue ; } Ins . Nop nop = new Ins . Nop ( ) ; Ins . IfNonNull ifNonNull = new Ins . IfNonNull ( new Ins . TLoad ( param , scope , lineCol ) , nop , lineCol ) ; instructions . add ( ifNonNull ) ; instructions . add ( new Ins . AThrow ( new Ins . New ( getJava_lang_NullPointerException_cons ( ) , lineCol ) , lineCol ) ) ; instructions . add ( nop ) ; Ins . Nop nop2 = new Ins . Nop ( ) ; Ins . IfACmpNe ifACmpNe = new Ins . IfACmpNe ( new Ins . TLoad ( param , scope , lineCol ) , invoke_Unit_get ( lineCol ) , nop2 , lineCol ) ; instructions . add ( ifACmpNe ) ; instructions . add ( new Ins . AThrow ( new Ins . New ( getJava_lang_IllegalArgumentException_cons ( ) , lineCol ) , lineCol ) ) ; instructions . add ( nop2 ) ; } } }
target:  handle nonnull/nonempty modifiers on parameters