[ 
https://issues.apache.org/jira/browse/CALCITE-6552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde updated CALCITE-6552:
---------------------------------
    Description: 
In CALCITE-4199 we enabled CheckerFramework (via annotations and CI jobs) in 
the 'core' and 'linq4j' modules; this change further enables CheckerFramework 
in the 'server' module, and fixes all violations.

There are also a large number of 'cosmetic' modifications to improve code 
quality without changing behavior, including:
 * Replace '{{this.x = x; assert x != null;}}' by '{{this.x = 
requireNonNull\(x);}}' in constructors
 * Replace {{assert}} in other code locations where it implements an invariant. 
We don't use {{requireNonNull}} because it throws {{NullPointerException}}; we 
would prefer to throw {{AssertionError}} or {{IllegalStateException}}
 * Replace {{x.equals("")}} and {{x.size() == 0}} with {{x.isEmpty()}}
 * Make fields {{final}} where possible
 * Make private methods and inner classes {{static}} where possible
 * In {{class Pair<K, V>}} make the type variables {{K}} and {{V}} no longer 
{{@Nullable}} by default (you can make each of them nullable if you need)

  was:
In CALCITE-4199 we enabled CheckerFramework (via annotations and CI jobs) in 
the 'core' and 'linq4j' modules; this change further enables CheckerFramework 
in the 'server' module, and fixes all violations.

There are also a large number of 'cosmetic' modifications to improve code 
quality without changing behavior, including:
 * Replace '{{{}this.x = x; assert x != null;{}}}' by '{{{}this.x = 
requireNonNull(x);{}}}' in constructors
 * Replace {{assert}} in other code locations where it implements an invariant. 
We don't use {{requireNonNull}} because it throws {{{}NullPointerException{}}}; 
we would prefer to throw {{AssertionError}} or {{IllegalStateException}}
 * Replace {{x.equals("")}} and {{x.size() == 0}} with {{x.isEmpty()}}
 * Make fields {{final}} where possible
 * Make private methods and inner classes {{static}} where possible
 * In {{class Pair<K, V>}} make the type variables {{K}} and {{V}} no longer 
{{@Nullable}} by default (you can make each of them nullable if you need)


> Enable checkerframework in 'server' module
> ------------------------------------------
>
>                 Key: CALCITE-6552
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6552
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>            Priority: Major
>
> In CALCITE-4199 we enabled CheckerFramework (via annotations and CI jobs) in 
> the 'core' and 'linq4j' modules; this change further enables CheckerFramework 
> in the 'server' module, and fixes all violations.
> There are also a large number of 'cosmetic' modifications to improve code 
> quality without changing behavior, including:
>  * Replace '{{this.x = x; assert x != null;}}' by '{{this.x = 
> requireNonNull\(x);}}' in constructors
>  * Replace {{assert}} in other code locations where it implements an 
> invariant. We don't use {{requireNonNull}} because it throws 
> {{NullPointerException}}; we would prefer to throw {{AssertionError}} or 
> {{IllegalStateException}}
>  * Replace {{x.equals("")}} and {{x.size() == 0}} with {{x.isEmpty()}}
>  * Make fields {{final}} where possible
>  * Make private methods and inner classes {{static}} where possible
>  * In {{class Pair<K, V>}} make the type variables {{K}} and {{V}} no longer 
> {{@Nullable}} by default (you can make each of them nullable if you need)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to