Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
Description
GStrings seemingly can't be used as map keys. The error seems to be generated by the GString not being able to be converted to a string.
This is not really true as stated since:
someString = 'blah' def someFunction ( a ) { println ( a.toString ( ) ) return a.toString ( ) } assert someFunction ( datum : 'A String.' ) == '{datum=A String.}' assert someFunction ( ( someString ) : 'A String.' ) == '{blah=A String.}' assert someFunction ( 'aString' : 'A String.' ) == '{aString=A String.}' assert someFunction ( "X${someString}" : 'A GString.' ) == '{Xblah=A GString.}'appears to work fine. This issue arises originally from a problem in Gant, so it seems this may actually be a problem in the treatment of parameters in the target/task closure in gant.Gant rather than a Groovy problem.
someString = 'blah' def someFunction ( a ) { println ( a.toString ( ) ) return a.toString ( ) } assert someFunction ( datum : 'A String.' ) == '{datum=A String.}' assert someFunction ( ( someString ) : 'A String.' ) == '{blah=A String.}' assert someFunction ( 'aString' : 'A String.' ) == '{aString=A String.}' assert someFunction ( "X${someString}" : 'A GString.' ) == '{Xblah=A GString.}'