src/com/google/javascript/rhino/jstype/UnionType.java
/**
   * This predicate is used to test whether a given type can appear in a
   * numeric context, such as an operand of a multiply operator.
   *
   * @return true if the type can appear in a numeric context.
   */
This predicate is used to test whether a given type can appear in a
numeric context, such as an operand of a multiply operator.

@return true if the type can appear in a numeric context.
This predicate is used to test whether a given type can appear in a numeric context such as an operand of a multiply operator . @return true if the type can appear in a numeric context .
@Override
  public boolean matchesNumberContext() {
    return anyMatch(JSType::matchesNumberContext, alternatesRetainingStructuralSubtypes);
  }
@ Override public boolean matchesNumberContext ( ) { return anyMatch ( JSType :: matchesNumberContext , alternatesRetainingStructuralSubtypes ) ; }
This predicate is used to test whether a given type can appear in a
 numeric context, such as an operand of a multiply operator.
This predicate is used to test whether a given type can appear in a numeric context such as an operand of a multiply operator .
// TODO(user): Reverse this logic to make it correct instead of generous.