The name of the enum is Gender, not Sex, so the decl of gender in C1 looks 
dubious.  The error message (referring to Sex) doesn’t match the code (using 
Gender), so I’m wondering if the error message wasn’t a result of the version 
of the code you pasted below?

From: DECLOEDT Loic EVADERIS [mailto:[email protected]]
Sent: 23 March 2016 09:02
To: [email protected]
Cc: PAOLI Pierre EVADERIS; GUIU Vincent EVADERIS
Subject: Groovy runtime issue with multiple directories install

Hi,
I have a problem starting up a groovy project structured like this:
project/
 classes/
   person/
      C1.groovy
  scripts
   run.groovy

The C1.groovy file contains the following code:
package person
import groovy.transform.ToString

@ToString
class C1 {
  enum Gender { M, F}

  String name
  Sex gender
}

And the run.groovy file contains the following code:
import person.C1
//import person.C1.Gender
def m = person.C1.Gender.M
def f = person.C1.Gender.F
println "genders: ${m}, ${f}"

abstract class CScript extends groovy.lang.Script {
  public C1 addC1(String name, person.C1.Gender g) {
    return new C1(name:name, gender:g)
  }
}

def c = new C1(name: "max", gender: person.C1.Gender.M)

println "c = ${c}"

I have the following error when executing this code with the following command 
from the project dir:
groovy -cp $PWD/classes scripts/run.groovy
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/home/ldecloed/Groovy/workspace/issueImportEnum/scripts/run.groovy: 13: unable 
to resolve class person.C1.Sex
 @ line 13, column 32.
     public C1 addC1(String name, person.C1.Sex g) {
                                  ^

1 error

However, all errors disapear when commenting out the whole CScript class 
declaration.  As a result, the person.C1.Sex enum can be used outside the 
CScript class declaration but not inside.
In addtion, I tested a static compilation of the whole code and it works 
correctly in this case.
Can you clarify whether this code is valid ? If so, do you plan to improve 
groovy to support it ?
This test has been made with groovy 2.4.6. I can provide the sources if you 
want a test-case.

Regards,
Loïc.

--
Loïc Decloedt
CAD & Software Manager
eVaderis
[eVaderis-logo-CMJN-small1]

Minatec Entreprise BHT
7, Parvis Louis Néel
38054 Grenoble Cedex 9
France
Office : 04 38 7 80874

"Misys" is the trade name of the Misys group of companies. This email and any 
attachments have been scanned for known viruses using multiple scanners. This 
email message is intended for the named recipient only. It may be privileged 
and/or confidential. If you are not the named recipient of this email please 
notify us immediately and do not copy it or use it for any purpose, nor 
disclose its contents to any other person. This email does not constitute the 
commencement of legal relations between you and Misys. Please refer to the 
executed contract between you and the relevant member of the Misys group for 
the identity of the contracting party with which you are dealing.

Reply via email to