void RegisterType(DataType dt) { if (dt.IsClosed) { _type.TypeObjects.Add(dt); } else if (dt.IsGenericParameter) { _type.TypeObjects.Add(Type); } else if (dt.IsGenericMethodType) { RegisterType(dt.ParentType.MasterDefinition); } else if (dt.MasterDefinition != Type && !dt.IsArray) { _type.TypeObjects.Add(dt.MasterDefinition); } if (!_type.TypeObjects.Contains(dt) && !(Function.IsGenericMethod && CppBackend.Compare(dt, Function.GenericType)) && !CppBackend.Compare(dt, Type) && !dt.IsGenericParameter && dt.MasterDefinition.Stats.HasFlag(EntityStats.RefCount)) { _func.PrecalcedTypes.Add(dt); } }
void RegisterDependency(DataType dt) { if (!(Function.IsGenericMethod && CppBackend.Compare(dt, Function.GenericType)) && !CppBackend.Compare(dt, Type) && dt.HasInitializer && dt.BuiltinType != BuiltinType.String && dt.BuiltinType != BuiltinType.Char && dt.MasterDefinition.Stats.HasFlag(EntityStats.RefCount)) { _func.Dependencies.Add(dt); } }