public TypeVariable EnsureExpressionTypeVariable(TypeFactory factory, Expression e, string name) { if (e != null && e.TypeVariable != null) return e.TypeVariable; TypeVariable tv = name != null ? factory.CreateTypeVariable(name) : factory.CreateTypeVariable(); AddDebugSource(tv, e); tv.Class = new EquivalenceClass(tv); if (e != null) e.TypeVariable = tv; this.TypeVariables.Add(tv); this.usedClasses.Add(tv.Class.Number, tv.Class); return tv; }
public TypeVariable CreateTypeVariable(TypeFactory factory) { TypeVariable tv = factory.CreateTypeVariable(); tv.Class = new EquivalenceClass(tv); this.TypeVariables.Add(tv); this.usedClasses.Add(tv.Class.Number, tv.Class); return tv; }
public TypeVariable CreateTypeVariable(TypeFactory factory) { TypeVariable tv = factory.CreateTypeVariable(); tv.Class = new EquivalenceClass(tv); this.TypeVariables.Add(tv); this.usedClasses.Add(tv.Class.Number, tv.Class); return(tv); }
public TypeVariable EnsureExpressionTypeVariable(TypeFactory factory, Expression e, string name) { if (e != null && e.TypeVariable != null) { return(e.TypeVariable); } TypeVariable tv = name != null?factory.CreateTypeVariable(name) : factory.CreateTypeVariable(); AddDebugSource(tv, e); tv.Class = new EquivalenceClass(tv); if (e != null) { e.TypeVariable = tv; } this.TypeVariables.Add(tv); this.usedClasses.Add(tv.Class.Number, tv.Class); return(tv); }