Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
For this Java code:
import net.jqwik.api.ForAll; import net.jqwik.api.Property; import net.jqwik.api.constraints.IntRange; import java.util.List; public class Jsr308J { @Property public boolean sizeZeroOrPositive( @ForAll List<@IntRange(min=0, max=10) Integer> items ) { return items.size() >= 0; } }
bytecode for method contains this info:
RuntimeVisibleAnnotations: 0: #22() RuntimeVisibleTypeAnnotations: 0: #24(#25=I#26,#27=I#28): METHOD_FORMAL_PARAMETER, param_index=0, location=[TYPE_ARGUMENT(0)] RuntimeVisibleParameterAnnotations: parameter 0: 0: #30()
For this Groovy code,
//@Grab('net.jqwik:jqwik:1.1.4') import groovy.transform.CompileStatic import net.jqwik.api.ForAll import net.jqwik.api.Property import net.jqwik.api.constraints.IntRange; @CompileStatic class Jsr308 { @Property boolean 'size zero or positive'( @ForAll List<@IntRange(min=0, max=10) Integer> items ) { items.size() >= 0 } }
Respective bytecode info is:
RuntimeVisibleAnnotations: 0: #31() RuntimeVisibleParameterAnnotations: parameter 0: 0: #32()
It is missing the RuntimeVisibleTypeAnnotations information.