# Class: com.pnfsoftware.jeb.core.units.code.android.ir.DTypeInfo

Type information object used to collect typing results when propagating types through an SSA'ed IR.

## Constructor: DTypeInfo
- parameter: `ctx`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDMethodContext`

Description: Create a type information object.
parameter: ctx: method context in which type propagation takes place

## Method: getChangedCounter
- return type: `int`

Description: Retrieve the number of type updates.
return: the change count

## Method: getConflicts
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.android.ir.DTypeInfo.TypingConlict>`

Description: Retrieve the recorded typing conflicts.
return: an unmodifiable list of conflicts

## Method: getContext
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDMethodContext`

Description: Retrieve the IR context in which type propagation will take place.
return: the method context

## Method: getTypeFactory
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaTypeFactory`

Description: Retrieve the type factory associated with the method context.
return: the type factory

## Method: getUnchangedCounter
- return type: `int`

Description: Retrieve the number of unchanged type propagation results.
return: the unchanged count

## Method: getVariableCandidateTypes
- parameter: `varid`, type: `int`
- return type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.java.IJavaType>`

Description: Retrieve candidate types for a variable.
parameter: varid: variable id
return: candidate types, or an empty set if none were recorded

## Method: getVariableCandidateTypes
- return type: `java.util.Map<java.lang.Integer,java.util.Set<com.pnfsoftware.jeb.core.units.code.java.IJavaType>>`

Description: Retrieve all variable candidate types.
return: the candidate type map keyed by variable id

## Method: recordChanged
- return type: `int`

Description: Record a type update.
return: the updated change count

## Method: recordConflict
- parameter: `msg`, type: `java.lang.String`
- parameter: `exp`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDExpression`
- parameter: `currentType`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `wantedType`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Record a typing conflict.
parameter: msg: conflict description
parameter: exp: expression whose type could not be reconciled
parameter: currentType: current expression type
parameter: wantedType: requested expression type

## Method: recordUnchanged
- return type: `int`

Description: Record an unchanged type propagation result.
return: the updated unchanged count

## Method: recordVariableCandidateType
- parameter: `varid`, type: `int`
- parameter: `t`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Record a candidate type for a variable.
parameter: varid: variable id
parameter: t: candidate type

## Method: reset

Description: Reset counters and recorded conflicts.

## Method: resetCounters

Description: Reset the type\-change counters.

## Method: toString
- return type: `java.lang.String`


