jasm.lang
Class JvmType.Intersection

java.lang.Object
  extended by jasm.lang.JvmType.Intersection
All Implemented Interfaces:
JvmType, JvmType.Reference, java.lang.Comparable<JvmType>
Enclosing interface:
JvmType

public static class JvmType.Intersection
extends java.lang.Object
implements JvmType.Reference

An intersection type represents a (unknown) type which known to be a subtype of several types. For example, given types T1 and T2, then their intersection type is T1 & T2. The intersection type represents an object which is *both* an instance of T1 and an instance of T2. Thus, we always have that T1 :> T1 & T2 and T2 :> T1 & T2.

Author:
David J. Pearce

Nested Class Summary
 
Nested classes/interfaces inherited from interface jasm.lang.JvmType
JvmType.Array, JvmType.Bool, JvmType.Byte, JvmType.Char, JvmType.Clazz, JvmType.Double, JvmType.Float, JvmType.Function, JvmType.Int, JvmType.Intersection, JvmType.Long, JvmType.Null, JvmType.Primitive, JvmType.Reference, JvmType.Short, JvmType.Variable, JvmType.Void, JvmType.Wildcard
 
Constructor Summary
JvmType.Intersection(java.util.List<JvmType.Reference> bounds)
           
 
Method Summary
 java.util.List<JvmType.Reference> bounds()
           
 int compareTo(JvmType t)
           
 boolean equals(java.lang.Object o)
           
 int hashCode()
           
 java.lang.String toString()
           
 java.util.List<JvmType.Variable> usedVariables()
           This method returns the list of generic variables used in this type.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JvmType.Intersection

public JvmType.Intersection(java.util.List<JvmType.Reference> bounds)
Method Detail

bounds

public java.util.List<JvmType.Reference> bounds()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

compareTo

public int compareTo(JvmType t)
Specified by:
compareTo in interface java.lang.Comparable<JvmType>

usedVariables

public java.util.List<JvmType.Variable> usedVariables()
Description copied from interface: JvmType

This method returns the list of generic variables used in this type. So, for example, suppose we have:

 T = java.lang.ArrayList<? extends S>
 

Then, T.usedVariables()=[S].

Specified by:
usedVariables in interface JvmType
Returns:


Copyright © 2013 David J. Pearce. All Rights Reserved.