47 public override bool Equals(
object obj)
50 return other !=
null &&
Equals(other.Value);
58 internal CustomModifiers GetReturnTypeCustomModifiers()
61 return new CustomModifiers();
66 internal CustomModifiers GetParameterCustomModifiers(
int index)
69 return new CustomModifiers();
74 internal PackedCustomModifiers Bind(IGenericBinder binder)
77 return new PackedCustomModifiers();
83 return new PackedCustomModifiers(expanded);
86 internal bool ContainsMissingType
100 internal static PackedCustomModifiers CreateFromExternal(
Type[] returnOptional,
Type[] returnRequired,
Type[][] parameterOptional,
Type[][] parameterRequired,
int parameterCount)
102 CustomModifiers[] modifiers =
null;
104 Pack(
ref modifiers, 0, CustomModifiers.FromReqOpt(returnRequired, returnOptional), parameterCount + 1);
105 for (
int i = 0; i < parameterCount; i++)
106 Pack(
ref modifiers, i + 1, CustomModifiers.FromReqOpt(Util.NullSafeElementAt(parameterRequired, i), Util.NullSafeElementAt(parameterOptional, i)), parameterCount + 1);
108 return new PackedCustomModifiers(modifiers);
111 internal static PackedCustomModifiers CreateFromExternal(CustomModifiers returnTypeCustomModifiers, CustomModifiers[] parameterTypeCustomModifiers,
int parameterCount)
116 if (parameterTypeCustomModifiers !=
null)
117 for (
int i = 0; i < parameterCount; i++)
118 Pack(
ref customModifiers, i + 1, parameterTypeCustomModifiers[i], parameterCount + 1);
123 internal static PackedCustomModifiers Wrap(CustomModifiers[] modifiers)
125 return new PackedCustomModifiers(modifiers);
128 internal static void Pack(
ref CustomModifiers[] array,
int index, CustomModifiers mods,
int count)
132 array ??=
new CustomModifiers[count];