コード例 #1
0
ファイル: DataTypeBuilder.cs プロジェクト: killbug2004/reko
		public DataTypeBuilder(TypeFactory factory, ITypeStore store, Platform platform)
		{
			this.store = store;
			this.factory = factory;
			this.unifier = new DataTypeBuilderUnifier(factory, store);
            this.platform = platform;
		}
コード例 #2
0
ファイル: TypeStore.cs プロジェクト: killbug2004/reko
 public void BuildEquivalenceClassDataTypes(TypeFactory factory)
 {
     var utv = new UnionTypeVarsReplacer(this);
     foreach (TypeVariable tv in TypeVariables)
     {
         if (tv.OriginalDataType != null)
             tv.OriginalDataType.Accept(utv);
     }
     Unifier u = new DataTypeBuilderUnifier(factory, this);
     foreach (TypeVariable tv in TypeVariables)
     {
         DataType dt = tv.OriginalDataType;
         EquivalenceClass c = tv.Class;
         DataType dtOld = c.DataType;
         if (dtOld != null)
             dt = u.Unify(dt, dtOld);
         //else if (dt != null)
         //    dt = dt.Clone();        // why clone???
         c.DataType = dt;
     }
 }