Actual unit tests #126
build.yml
on: pull_request
Compile Java
1m 9s
Test Java
1m 29s
Check Format Java
38s
Lint
18s
Annotations
10 warnings
Use one line for each declaration, it enhances code readability.:
src/main/java/frc/robot/commands/drive/DriveCommand.java#L15
Java allows the use of several variables declaration of the same type on one line.
However, it can lead to quite messy code. This rule looks for several declarations on the same line.
OneDeclarationPerLine (Priority: 4, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_bestpractices.html#onedeclarationperline
|
Use one line for each declaration, it enhances code readability.:
src/main/java/frc/robot/commands/drive/DriveCommand.java#L16
Java allows the use of several variables declaration of the same type on one line.
However, it can lead to quite messy code. This rule looks for several declarations on the same line.
OneDeclarationPerLine (Priority: 4, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_bestpractices.html#onedeclarationperline
|
Perhaps 'angularSpeed' could be replaced by a local variable.:
src/main/java/frc/robot/commands/drive/DriveCommand.java#L17
Reports fields which may be converted to a local variable. This is so because
in every method where the field is used, it is assigned before it is first read.
Hence, the value that the field had before the method call may not be observed,
so it might as well not be stored in the enclosing object.
Limitations:
* We can only check private fields for now.
* The rule is not aware of threading, so it may cause false positives in concurrent code.
Such FPs are best handled by suppression (see also the `ignoredAnnotations` property).
SingularField (Priority: 3, Ruleset: Design)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_design.html#singularfield
|
Avoid using redundant field initializer for 'lastTimeStampSeconds':
src/main/java/frc/robot/commands/drive/DriveCommandBase.java#L22
Java will initialize fields with known default values so any explicit initialization of those same defaults
is redundant and results in a larger class file (approximately three additional bytecode instructions per field).
RedundantFieldInitializer (Priority: 3, Ruleset: Performance)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_performance.html#redundantfieldinitializer
|
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty():
src/main/java/frc/robot/extras/characterization/FeedForwardCharacterization.java#L78
The isEmpty() method on java.util.Collection is provided to determine if a collection has any elements.
Comparing the value of size() to 0 does not convey intent as well as the isEmpty() method.
UseCollectionIsEmpty (Priority: 3, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_bestpractices.html#usecollectionisempty
|
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty():
src/main/java/frc/robot/extras/characterization/FeedForwardCharacterization.java#L78
The isEmpty() method on java.util.Collection is provided to determine if a collection has any elements.
Comparing the value of size() to 0 does not convey intent as well as the isEmpty() method.
UseCollectionIsEmpty (Priority: 3, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_bestpractices.html#usecollectionisempty
|
Do not add empty strings:
src/main/java/frc/robot/extras/characterization/FeedForwardCharacterization.java#L89
The conversion of literals to strings by concatenating them with empty strings is inefficient.
It is much better to use one of the type-specific `toString()` methods instead or `String.valueOf()`.
AddEmptyString (Priority: 3, Ruleset: Performance)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_performance.html#addemptystring
|
Do not add empty strings:
src/main/java/frc/robot/extras/characterization/FeedForwardCharacterization.java#L123
The conversion of literals to strings by concatenating them with empty strings is inefficient.
It is much better to use one of the type-specific `toString()` methods instead or `String.valueOf()`.
AddEmptyString (Priority: 3, Ruleset: Performance)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_performance.html#addemptystring
|
Avoid using redundant field initializer for 'hasDefault':
src/main/java/frc/robot/extras/debug/LoggedTunableNumber.java#L25
Java will initialize fields with known default values so any explicit initialization of those same defaults
is redundant and results in a larger class file (approximately three additional bytecode instructions per field).
RedundantFieldInitializer (Priority: 3, Ruleset: Performance)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_performance.html#redundantfieldinitializer
|
Field 'lastHasChangedValues' may be declared final:
src/main/java/frc/robot/extras/debug/LoggedTunableNumber.java#L28
Reports non-final fields whose value never changes once object initialization ends,
and hence may be marked final.
Note that this rule does not enforce that the field value be deeply immutable itself.
An object can still have mutable state, even if all its member fields are declared final.
This is referred to as shallow immutability. For more information on mutability,
see *Effective Java, 3rd Edition, Item 17: Minimize mutability*.
Limitations: We can only check private fields for now.
ImmutableField (Priority: 3, Ruleset: Design)
https://docs.pmd-code.org/pmd-doc-7.7.0/pmd_rules_java_design.html#immutablefield
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
PMD Report
|
12.1 KB |
|