Max chen does wheel characterization #289
build.yml
on: pull_request
Compile Java
1m 36s
Test Java
1m 56s
Check Format Java
47s
Lint
12s
Annotations
7 errors and 10 warnings
This class has only private constructors and may be final:
src/main/java/frc/robot/sim/simController/ClosedLoop.java#L46
Reports classes that may be made final because they cannot be extended from outside
their compilation unit anyway. This is because all their constructors are private,
so a subclass could not call the super constructor.
ClassWithOnlyPrivateConstructorsShouldBeFinal (Priority: 1, Ruleset: Design)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_design.html#classwithonlyprivateconstructorsshouldbefinal
|
This class has only private constructors and may be final:
src/main/java/frc/robot/sim/simController/UnitSafeControl.java#L742
Reports classes that may be made final because they cannot be extended from outside
their compilation unit anyway. This is because all their constructors are private,
so a subclass could not call the super constructor.
ClassWithOnlyPrivateConstructorsShouldBeFinal (Priority: 1, Ruleset: Design)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_design.html#classwithonlyprivateconstructorsshouldbefinal
|
Logger calls should be surrounded by log level guards.:
src/main/java/frc/robot/sim/simField/SimArena.java#L107
Whenever using a log level, one should check if it is actually enabled, or
otherwise skip the associate String creation and manipulation, as well as any method calls.
An alternative to checking the log level are substituting parameters, formatters or lazy logging
with lambdas. The available alternatives depend on the actual logging framework.
GuardLogStatement (Priority: 2, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_bestpractices.html#guardlogstatement
|
This class has only private constructors and may be final:
src/main/java/frc/robot/sim/simField/SimGamePiece.java#L249
Reports classes that may be made final because they cannot be extended from outside
their compilation unit anyway. This is because all their constructors are private,
so a subclass could not call the super constructor.
ClassWithOnlyPrivateConstructorsShouldBeFinal (Priority: 1, Ruleset: Design)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_design.html#classwithonlyprivateconstructorsshouldbefinal
|
Logger calls should be surrounded by log level guards.:
src/main/java/frc/robot/sim/simField/SimGamePiece.java#L302
Whenever using a log level, one should check if it is actually enabled, or
otherwise skip the associate String creation and manipulation, as well as any method calls.
An alternative to checking the log level are substituting parameters, formatters or lazy logging
with lambdas. The available alternatives depend on the actual logging framework.
GuardLogStatement (Priority: 2, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_bestpractices.html#guardlogstatement
|
Logger calls should be surrounded by log level guards.:
src/main/java/frc/robot/sim/simMechanism/simSwerve/SimSwerve.java#L72
Whenever using a log level, one should check if it is actually enabled, or
otherwise skip the associate String creation and manipulation, as well as any method calls.
An alternative to checking the log level are substituting parameters, formatters or lazy logging
with lambdas. The available alternatives depend on the actual logging framework.
GuardLogStatement (Priority: 2, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_bestpractices.html#guardlogstatement
|
Check Format Java
Process completed with exit code 1.
|
Field 'm_robotContainer' may be declared final:
src/main/java/frc/robot/Robot.java#L21
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.10.0/pmd_rules_java_design.html#immutablefield
|
Field 'simWorld' may be declared final:
src/main/java/frc/robot/Robot.java#L22
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.10.0/pmd_rules_java_design.html#immutablefield
|
Switch statements or expressions should be exhaustive, add a default case (or missing enum branches):
src/main/java/frc/robot/Robot.java#L46
Switch statements should be exhaustive, to make their control flow
easier to follow. This can be achieved by adding a `default` case, or,
if the switch is on an enum type, by ensuring there is one switch branch
for each enum constant.
This rule doesn't consider Switch Statements, that use Pattern Matching, since for these the
compiler already ensures that all cases are covered. The same is true for Switch Expressions,
which are also not considered by this rule.
NonExhaustiveSwitch (Priority: 3, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_bestpractices.html#nonexhaustiveswitch
|
Avoid unused local variables such as 'operatorRightBumper'.:
src/main/java/frc/robot/RobotContainer.java#L138
Detects when a local variable is declared and/or assigned, but not used.
Variables whose name starts with `ignored` or `unused` are filtered out.
UnusedLocalVariable (Priority: 3, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_bestpractices.html#unusedlocalvariable
|
Avoid unused private fields such as 'visionSubsystem'.:
src/main/java/frc/robot/commands/autodrive/AutoAlign.java#L21
Detects when a private field is declared and/or assigned a value, but not used.
Since PMD 6.50.0 private fields are ignored, if the fields are annotated with any annotation or the
enclosing class has any annotation. Annotations often enable a framework (such as dependency injection, mocking
or e.g. Lombok) which use the fields by reflection or other means. This usage can't be detected by static code analysis.
Previously these frameworks where explicitly allowed by listing their annotations in the property
"ignoredAnnotations", but that turned out to be prone of false positive for any not explicitly considered framework.
UnusedPrivateField (Priority: 3, Ruleset: Best Practices)
https://docs.pmd-code.org/pmd-doc-7.10.0/pmd_rules_java_bestpractices.html#unusedprivatefield
|
Field 'targetPose' may be declared final:
src/main/java/frc/robot/commands/autodrive/AutoAlign.java#L23
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.10.0/pmd_rules_java_design.html#immutablefield
|
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty():
src/main/java/frc/robot/commands/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.10.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/commands/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.10.0/pmd_rules_java_bestpractices.html#usecollectionisempty
|
Do not add empty strings:
src/main/java/frc/robot/commands/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.10.0/pmd_rules_java_performance.html#addemptystring
|
Do not add empty strings:
src/main/java/frc/robot/commands/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.10.0/pmd_rules_java_performance.html#addemptystring
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
PMD Report
|
18.7 KB |
|