code: public static boolean isCompatible(final Type one, final Type two) {
          final CompatibilityTypesVisitor visitor = new CompatibilityTypesVisitor();
          TypesWalker.walk(one, two, visitor);
          return visitor.isCompatible();
      }
docs: Check if types are compatible: types must be equal or one extend another. Object is compatible with any type.
  <p>
  Not resolved type variables are resolved to Object.
  <p>
  Primitive types are checked as wrappers (for example, int is more specific then Number).
  
  @param one first type
  @param two second type
  @return true if types are alignable, false otherwise
  @see TypesWalker for implementation details