[jira] [Updated] (GROOVY-8892) Trait instance init blocks are called only when there are fields defined in same Trait
[ https://issues.apache.org/jira/browse/GROOVY-8892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Paul King updated GROOVY-8892: -- Fix Version/s: 3.0.0-alpha-4 > Trait instance init blocks are called only when there are fields defined in > same Trait > -- > > Key: GROOVY-8892 > URL: https://issues.apache.org/jira/browse/GROOVY-8892 > Project: Groovy > Issue Type: Bug > Components: Compiler, groovy-runtime >Affects Versions: 2.5.5 >Reporter: Anton Pryamostanov >Assignee: Paul King >Priority: Major > Fix For: 3.0.0-alpha-4, 2.5.5 > > > With ref. to GROOVY-8880, it seems Instance Init Blocks in Traits are > appended/called only when there are fields defined in the same trait. > Example: > {code} > trait TraitOne { > { > System.out.println("Does not work") > } > } > trait TraitTwo { > Integer instanceCounter //immutable, non-shareable > { > System.out.println("Works") > instanceCounter = 1 > } > } > class ClassWithTrait implements TraitOne, TraitTwo { > } > new ClassWithTrait().instanceCounter > {code} > Output: > {code} > Works > {code} > Expected output (order may differ): > {code} > Works > Does not work > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (GROOVY-8892) Trait instance init blocks are called only when there are fields defined in same Trait
[ https://issues.apache.org/jira/browse/GROOVY-8892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Anton Pryamostanov updated GROOVY-8892: --- Affects Version/s: 2.5.5 Component/s: groovy-runtime Compiler > Trait instance init blocks are called only when there are fields defined in > same Trait > -- > > Key: GROOVY-8892 > URL: https://issues.apache.org/jira/browse/GROOVY-8892 > Project: Groovy > Issue Type: Bug > Components: Compiler, groovy-runtime >Affects Versions: 2.5.5 >Reporter: Anton Pryamostanov >Priority: Major > > With ref. to GROOVY-8880, it seems Instance Init Blocks in Traits are > appended/called only when there are fields defined in the same trait. > Example: > {code} > trait TraitOne { > { > System.out.println("Does not work") > } > } > trait TraitTwo { > Integer instanceCounter //immutable, non-shareable > { > System.out.println("Works") > instanceCounter = 1 > } > } > class ClassWithTrait implements TraitOne, TraitTwo { > } > new ClassWithTrait().instanceCounter > {code} > Output: > {code} > Works > {code} > Expected output (order may differ): > {code} > Works > Does not work > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)