internal static bool TrySubstituteValue(object value, Resolver resolver, out ISubstitutedValue substitutedValue) { if (value is Type) { substitutedValue = new TypeSubstitution(TypeRef.Get((Type)value, resolver)); return(true); } substitutedValue = null; return(false); }
internal static bool TrySubstituteValue(object value, Resolver resolver, out ISubstitutedValue substitutedValue) { if (value is Type[]) { substitutedValue = new TypeArraySubstitution(((Type[])value).Select(t => TypeRef.Get(t, resolver)).ToImmutableArray(), resolver); return(true); } substitutedValue = null; return(false); }
internal static bool TrySubstituteValue(object value, Resolver resolver, out ISubstitutedValue substitutedValue) { Requires.NotNull(resolver, nameof(resolver)); if (value != null) { Type valueType = value.GetType(); if (valueType.GetTypeInfo().IsEnum&& Enum.GetUnderlyingType(valueType) == typeof(int) && IsTypeWorthDeferring(valueType)) { substitutedValue = new Enum32Substitution(TypeRef.Get(valueType, resolver), (int)value); return(true); } } substitutedValue = null; return(false); }