[
https://issues.apache.org/jira/browse/GROOVY-10912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Milles updated GROOVY-10912:
---------------------------------
Priority: Minor (was: Major)
> Inconsistency in the treatment of primitives values when passed as call
> arguments
> ---------------------------------------------------------------------------------
>
> Key: GROOVY-10912
> URL: https://issues.apache.org/jira/browse/GROOVY-10912
> Project: Groovy
> Issue Type: Bug
> Components: Static Type Checker
> Reporter: Thodoris Sotiropoulos
> Priority: Minor
>
> I have the following program
> {code}
> class Test {
> void test() {
> char c = 'c' // works
> double e = 10.0; // works
> Character v = Character.valueOf('c'); // 'c' is treated as String
> Double d = Double.valueOf(10.0); // 10.0 is treated as BigDecimal
> }
> }
> {code}
> h3. Actual behavior
> {code}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup
> failed:
> test.groovy: 4: [Static type checking] - Cannot find matching method
> java.lang.Character#valueOf(java.lang.String). Please check if the declared
> type is correct and if the method exists.
> @ line 4, column 21.
> Character v = Character.valueOf('c');
> ^
> test.groovy: 5: [Static type checking] - Cannot find matching method
> java.lang.Double#valueOf(java.math.BigDecimal). Please check if the declared
> type is correct and if the method exists.
> @ line 5, column 18.
> Double d = Double.valueOf(10.0);
> ^
> 2 errors
> {code}
> h3. Expected behavior
> Compile successfully
> Tested against master (commit: 89de534b77e2321d46e6a9821628331693c7aae2)
> The above test case demonstrates an inconsistency in the treatment of
> primitive values. For example, the constant "10.0" is treated as something
> of type double when the constant is assigned to a double variable. However,
> the same constant is not treated as something of type double when it is
> passed as argument to a function parameter of type double.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)