示例#1
0
文件: TypeStore.cs 项目: relaxar/reko
        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;
        }
示例#2
0
文件: TypeStore.cs 项目: relaxar/reko
 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;
 }
示例#3
0
        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);
        }
示例#4
0
        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);
        }