public override bool MetaClass_ConformsTo(MetaClassBuilder _this, MetaTypeBuilder type) { return(type is MetaClassBuilder superClass && _this.GetAllSuperClasses(true).Contains(superClass)); }
public override bool MetaConstant_ConformsTo(MetaConstantBuilder _this, MetaTypeBuilder type) { return(_this == type); }
public override bool MetaNullableType_ConformsTo(MetaNullableTypeBuilder _this, MetaTypeBuilder type) { return(type is MetaNullableTypeBuilder typeBuilder && _this.InnerType.ConformsTo(typeBuilder.InnerType)); }
public override bool MetaPrimitiveType_ConformsTo(MetaPrimitiveTypeBuilder _this, MetaTypeBuilder type) { if (type == null) { return(false); } if (_this == type) { return(true); } if (type == MetaInstance.Object) { return(true); } if (type is MetaNullableTypeBuilder nullableTypeBuilder && _this.ConformsTo(nullableTypeBuilder.InnerType)) { return(true); } if (_this == MetaInstance.Byte && (type == MetaInstance.Int || type == MetaInstance.Long || type == MetaInstance.Float || type == MetaInstance.Double)) { return(true); } if (_this == MetaInstance.Int && (type == MetaInstance.Long || type == MetaInstance.Float || type == MetaInstance.Double)) { return(true); } if (_this == MetaInstance.Long && (type == MetaInstance.Float || type == MetaInstance.Double)) { return(true); } if (_this == MetaInstance.Float && (type == MetaInstance.Double)) { return(true); } return(false); }
public override bool MetaType_ConformsTo(MetaTypeBuilder _this, MetaTypeBuilder type) { return(type != null && _this == type); }