haxe/src/haxe/rtti/Meta.cs
// Generated by Haxe 4.3.7

#pragma warning disable 109, 114, 219, 429, 168, 162
namespace haxe.rtti {
	public class Meta : global::haxe.lang.HxObject {
		
		public Meta(global::haxe.lang.EmptyObject empty) {
		}
		
		
		public Meta() {
			global::haxe.rtti.Meta.__hx_ctor_haxe_rtti_Meta(this);
		}
		
		
		protected static void __hx_ctor_haxe_rtti_Meta(global::haxe.rtti.Meta __hx_this) {
		}
		
		
		public static object getType(object t) {
			object meta = global::haxe.rtti.Meta.getMeta(t);
			if (( ( meta == null ) || ( global::haxe.lang.Runtime.getField(meta, "obj", 5541879, true) == null ) )) {
				return new global::haxe.lang.DynamicObject(new int[]{}, new object[]{}, new int[]{}, new double[]{});
			}
			else {
				return global::haxe.lang.Runtime.getField(meta, "obj", 5541879, true);
			}
			
		}
		
		
		public static bool isInterface(object t) {
			// Whitelist-safe: System.Type.get_IsInterface is not allowed.
			// Fall back to false; interface metadata resolution is not supported here.
			return false;
		}
		
		
		public static object getMeta(object t) {
			object ret = global::haxe.lang.Runtime.getField(t, "__meta__", 830800965, false);
			if (( ( ret == null ) && ( t is global::System.Type ) )) {
				if (global::haxe.rtti.Meta.isInterface(t)) {
					string name = global::Type.getClassName(((global::System.Type) (t) ));
					global::System.Type cls = global::Type.resolveClass(global::haxe.lang.Runtime.concat(name, "_HxMeta"));
					if ( ! (global::haxe.lang.Runtime.typeEq(cls, null)) ) {
						return global::haxe.lang.Runtime.getField(cls, "__meta__", 830800965, false);
					}
					
				}
				
			}
			
			return ret;
		}
		
		
		public static object getStatics(object t) {
			object meta = global::haxe.rtti.Meta.getMeta(t);
			if (( ( meta == null ) || ( global::haxe.lang.Runtime.getField(meta, "statics", 912604165, true) == null ) )) {
				return new global::haxe.lang.DynamicObject(new int[]{}, new object[]{}, new int[]{}, new double[]{});
			}
			else {
				return global::haxe.lang.Runtime.getField(meta, "statics", 912604165, true);
			}
			
		}
		
		
		public static object getFields(object t) {
			object meta = global::haxe.rtti.Meta.getMeta(t);
			if (( ( meta == null ) || ( global::haxe.lang.Runtime.getField(meta, "fields", 9342585, true) == null ) )) {
				return new global::haxe.lang.DynamicObject(new int[]{}, new object[]{}, new int[]{}, new double[]{});
			}
			else {
				return global::haxe.lang.Runtime.getField(meta, "fields", 9342585, true);
			}
			
		}
		
		
	}
}