java.lang.Object
de.monticore.types3.generics.bounds.Bound
All Implemented Interfaces:
Comparable<Bound>
Direct Known Subclasses:
CaptureBound, SubTypingBound, TypeCompatibilityBound, TypeEqualityBound, UnsatisfiableBound

public abstract class Bound extends Object implements Comparable<Bound>
Bounds limit the range of types allowed for the instantiation of inference variables. The (combination of) Bounds can lead to further Constraints, by means of BoundIncorporation, which, in turn, can lead to new Bounds. After collecting all bounds, the instantiations will then be calculated by BoundResolution.
  • Constructor Details

    • Bound

      public Bound()
  • Method Details

    • isCaptureBound

      public boolean isCaptureBound()
    • asCaptureBound

      public CaptureBound asCaptureBound()
    • isSubTypingBound

      public boolean isSubTypingBound()
    • asSubTypingBound

      public SubTypingBound asSubTypingBound()
    • isTypeCompatibilityBound

      public boolean isTypeCompatibilityBound()
    • asTypeCompatibilityBound

      public TypeCompatibilityBound asTypeCompatibilityBound()
    • isTypeEqualityBound

      public boolean isTypeEqualityBound()
    • asTypeEqualityBound

      public TypeEqualityBound asTypeEqualityBound()
    • isUnsatisfiableBound

      public boolean isUnsatisfiableBound()
    • asUnsatisfiableBound

      public UnsatisfiableBound asUnsatisfiableBound()
    • deepEquals

      public abstract boolean deepEquals(Bound other)
    • compareTo

      public int compareTo(Bound o)
      Specified by:
      compareTo in interface Comparable<Bound>
    • print

      public abstract String print()
      returns a human-readable String, e.g., for the log
    • getIncludedTypes

      public abstract List<SymTypeExpression> getIncludedTypes()
      Helper function;
      Returns:
      the types included in the bounds (most have two).