org.jetbrains.kotlin.resolve.calls.smartcasts
Class DataFlowValue

java.lang.Object
  extended by org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValue

public class DataFlowValue
extends java.lang.Object

This class describes an arbitrary object which has some value in data flow analysis. In general case it's some r-value.


Field Summary
static DataFlowValue ERROR
           
static DataFlowValue NULL
           
static DataFlowValue NULLABLE
           
 
Method Summary
 boolean equals(java.lang.Object o)
           
 java.lang.Object getId()
           
 Nullability getImmanentNullability()
           
 JetType getType()
           
 int hashCode()
           
 boolean isPredictable()
          Both stable identifiers and uncaptured local variables are considered "predictable".
 boolean isUncapturedLocalVariable()
          Identifier is considered a local variable here if it's mutable (var), local and not captured in a closure
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NULL

public static final DataFlowValue NULL

NULLABLE

public static final DataFlowValue NULLABLE

ERROR

public static final DataFlowValue ERROR
Method Detail

getId

@Nullable
public java.lang.Object getId()

getImmanentNullability

@NotNull
public Nullability getImmanentNullability()

isUncapturedLocalVariable

public boolean isUncapturedLocalVariable()
Identifier is considered a local variable here if it's mutable (var), local and not captured in a closure


isPredictable

public boolean isPredictable()
Both stable identifiers and uncaptured local variables are considered "predictable". Predictable means here we do not expect some sudden change of their values, like accessing mutable properties in another thread or mutable variables from closures.


getType

@NotNull
public JetType getType()

equals

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

toString

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

hashCode

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