diff options
Diffstat (limited to 'Runtime/Export/UnityEngineInternal')
-rw-r--r-- | Runtime/Export/UnityEngineInternal/TypeInferenceRuleAttribute.cs | 52 | ||||
-rw-r--r-- | Runtime/Export/UnityEngineInternal/WrappedTypes.cs | 20 |
2 files changed, 72 insertions, 0 deletions
diff --git a/Runtime/Export/UnityEngineInternal/TypeInferenceRuleAttribute.cs b/Runtime/Export/UnityEngineInternal/TypeInferenceRuleAttribute.cs new file mode 100644 index 0000000..f2c7fc2 --- /dev/null +++ b/Runtime/Export/UnityEngineInternal/TypeInferenceRuleAttribute.cs @@ -0,0 +1,52 @@ +using System; + +namespace UnityEngineInternal +{ + public enum TypeInferenceRules + { + /// <summary> + /// (typeof(T)) as T + /// </summary> + TypeReferencedByFirstArgument, + + /// <summary> + /// (, typeof(T)) as T + /// </summary> + TypeReferencedBySecondArgument, + + /// <summary> + /// (typeof(T)) as (T) + /// </summary> + ArrayOfTypeReferencedByFirstArgument, + + /// <summary> + /// (T) as T + /// </summary> + TypeOfFirstArgument, + } + + /// <summary> + /// Adds a special type inference rule to a method. + /// </summary> + [Serializable] + [AttributeUsage(AttributeTargets.Method)] + public class TypeInferenceRuleAttribute : Attribute + { + private readonly string _rule; + + public TypeInferenceRuleAttribute(TypeInferenceRules rule) + : this(rule.ToString()) + { + } + + public TypeInferenceRuleAttribute(string rule) + { + _rule = rule; + } + + public override string ToString() + { + return _rule; + } + } +}
\ No newline at end of file diff --git a/Runtime/Export/UnityEngineInternal/WrappedTypes.cs b/Runtime/Export/UnityEngineInternal/WrappedTypes.cs new file mode 100644 index 0000000..54c2444 --- /dev/null +++ b/Runtime/Export/UnityEngineInternal/WrappedTypes.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +namespace UnityEngineInternal +{ + // This is a solution to problem where we cannot use: + // * System.Collections.Stack on WP8 and Metro, because it was stripped from .NET + // * System.Collections.Generic.Stack cannot use on iOS because it creates a dependency to System.dll thus increasing overall executable size +#if UNITY_WINRT + public class GenericStack : Stack<Object> + { + + } +#else + public class GenericStack : System.Collections.Stack + { + + } +#endif + +}
\ No newline at end of file |