# OT/J quick fixes

Specific quick fixes are available for mending OT/J-related problems, including:

class modifiers
  – missing `team` modifier,
  – illegal modifier for a role,
  – reducing the visibility from an (explicitly or implicitly) inherited role,
  – abstract relevant role ( 2.5(b)).
modifiers of methods and method bindings
  – mismatch between a method's `callin` modifier and a callin binding's modifier (`before/after/replace`),
  – static/non-static incompatibility in a callin replace binding,
  – mismatching override of callin vs. regular role methods ( 4.2(d)),
  – missing callin binding modifier (`before/after/replace`).
  – wrong callout token (`->` vs. `=>`, 3.1(e)).
  – insufficient visibility of a role method / constructor / field.
  – also insufficient visibility of a shorthand callout binding can be fixed be prepending a visibility modifier (protected or public, see 3.1(i)).
callout/callin method bindings
  – materializing inferred callout bindings ( 3.1(j), 3.5(h))
  – missing callin precedence declaration ( 4.8).
  – add/remove signatures in callout/callin method binding ( 3.1(c), 4.1(c)).
  This works as a quickfix if one of the method specs cannot be resolved, otherwise this change classifies as a quick assist.
typing
  – add a missing anchor for the type of an externalized role ( 1.2.2, 9.2) (proposals are inferred from the context),
  – adding missing `final` modifier to a variable used as a type anchor,
  – adding required type parameter to a callin binding capturing covariant base methods ( 4.9.3).
role files
  – adding `@role` javadoc tags referring to a team's role files ( 1.2.5.d).
coding style
  – change import to "`import base` ...", ( 2.1.2(d))
  – change qualified reference to a role's base class to using a simple name and "`import base` ...",
  – migrate syntax for externalized role from "`anchor.R`" to "`R<@anchor>`" ( 1.2.2(b)).
  – adding a missing `@Override` annotation to a role class that overrides a corresponding role from the super team ( 1.3.1(c)).
  – adding a missing `@Override` annotation to a role method that overrides a corresponding method from the implicit super role.

Additionally, some standard Java quickfixes and content assists have been extended to be applicable for OT/J elements, too.

suppress warnings
  – `@SuppressWarnings` annotations can be added to method bindings, too.
create method
  – applies to unresolved method specs in callout/callin bindings, too.
  – generate inherited abstract methods also respects implicit inheritance.
organize imports
  – creates "`import base` ...", if appropriate
and more..