package runtime

import (
	
	
)

// Type representing reflect.rtype for noescape trick
type Type struct{}

//go:linkname rtype_Align reflect.(*rtype).Align
//go:noescape
func rtype_Align(*Type) int

func ( *Type) () int {
	return rtype_Align()
}

//go:linkname rtype_FieldAlign reflect.(*rtype).FieldAlign
//go:noescape
func rtype_FieldAlign(*Type) int

func ( *Type) () int {
	return rtype_FieldAlign()
}

//go:linkname rtype_Method reflect.(*rtype).Method
//go:noescape
func rtype_Method(*Type, int) reflect.Method

func ( *Type) ( int) reflect.Method {
	return rtype_Method(, )
}

//go:linkname rtype_MethodByName reflect.(*rtype).MethodByName
//go:noescape
func rtype_MethodByName(*Type, string) (reflect.Method, bool)

func ( *Type) ( string) (reflect.Method, bool) {
	return rtype_MethodByName(, )
}

//go:linkname rtype_NumMethod reflect.(*rtype).NumMethod
//go:noescape
func rtype_NumMethod(*Type) int

func ( *Type) () int {
	return rtype_NumMethod()
}

//go:linkname rtype_Name reflect.(*rtype).Name
//go:noescape
func rtype_Name(*Type) string

func ( *Type) () string {
	return rtype_Name()
}

//go:linkname rtype_PkgPath reflect.(*rtype).PkgPath
//go:noescape
func rtype_PkgPath(*Type) string

func ( *Type) () string {
	return rtype_PkgPath()
}

//go:linkname rtype_Size reflect.(*rtype).Size
//go:noescape
func rtype_Size(*Type) uintptr

func ( *Type) () uintptr {
	return rtype_Size()
}

//go:linkname rtype_String reflect.(*rtype).String
//go:noescape
func rtype_String(*Type) string

func ( *Type) () string {
	return rtype_String()
}

//go:linkname rtype_Kind reflect.(*rtype).Kind
//go:noescape
func rtype_Kind(*Type) reflect.Kind

func ( *Type) () reflect.Kind {
	return rtype_Kind()
}

//go:linkname rtype_Implements reflect.(*rtype).Implements
//go:noescape
func rtype_Implements(*Type, reflect.Type) bool

func ( *Type) ( reflect.Type) bool {
	return rtype_Implements(, )
}

//go:linkname rtype_AssignableTo reflect.(*rtype).AssignableTo
//go:noescape
func rtype_AssignableTo(*Type, reflect.Type) bool

func ( *Type) ( reflect.Type) bool {
	return rtype_AssignableTo(, )
}

//go:linkname rtype_ConvertibleTo reflect.(*rtype).ConvertibleTo
//go:noescape
func rtype_ConvertibleTo(*Type, reflect.Type) bool

func ( *Type) ( reflect.Type) bool {
	return rtype_ConvertibleTo(, )
}

//go:linkname rtype_Comparable reflect.(*rtype).Comparable
//go:noescape
func rtype_Comparable(*Type) bool

func ( *Type) () bool {
	return rtype_Comparable()
}

//go:linkname rtype_Bits reflect.(*rtype).Bits
//go:noescape
func rtype_Bits(*Type) int

func ( *Type) () int {
	return rtype_Bits()
}

//go:linkname rtype_ChanDir reflect.(*rtype).ChanDir
//go:noescape
func rtype_ChanDir(*Type) reflect.ChanDir

func ( *Type) () reflect.ChanDir {
	return rtype_ChanDir()
}

//go:linkname rtype_IsVariadic reflect.(*rtype).IsVariadic
//go:noescape
func rtype_IsVariadic(*Type) bool

func ( *Type) () bool {
	return rtype_IsVariadic()
}

//go:linkname rtype_Elem reflect.(*rtype).Elem
//go:noescape
func rtype_Elem(*Type) reflect.Type

func ( *Type) () *Type {
	return Type2RType(rtype_Elem())
}

//go:linkname rtype_Field reflect.(*rtype).Field
//go:noescape
func rtype_Field(*Type, int) reflect.StructField

func ( *Type) ( int) reflect.StructField {
	return rtype_Field(, )
}

//go:linkname rtype_FieldByIndex reflect.(*rtype).FieldByIndex
//go:noescape
func rtype_FieldByIndex(*Type, []int) reflect.StructField

func ( *Type) ( []int) reflect.StructField {
	return rtype_FieldByIndex(, )
}

//go:linkname rtype_FieldByName reflect.(*rtype).FieldByName
//go:noescape
func rtype_FieldByName(*Type, string) (reflect.StructField, bool)

func ( *Type) ( string) (reflect.StructField, bool) {
	return rtype_FieldByName(, )
}

//go:linkname rtype_FieldByNameFunc reflect.(*rtype).FieldByNameFunc
//go:noescape
func rtype_FieldByNameFunc(*Type, func(string) bool) (reflect.StructField, bool)

func ( *Type) ( func(string) bool) (reflect.StructField, bool) {
	return rtype_FieldByNameFunc(, )
}

//go:linkname rtype_In reflect.(*rtype).In
//go:noescape
func rtype_In(*Type, int) reflect.Type

func ( *Type) ( int) reflect.Type {
	return rtype_In(, )
}

//go:linkname rtype_Key reflect.(*rtype).Key
//go:noescape
func rtype_Key(*Type) reflect.Type

func ( *Type) () *Type {
	return Type2RType(rtype_Key())
}

//go:linkname rtype_Len reflect.(*rtype).Len
//go:noescape
func rtype_Len(*Type) int

func ( *Type) () int {
	return rtype_Len()
}

//go:linkname rtype_NumField reflect.(*rtype).NumField
//go:noescape
func rtype_NumField(*Type) int

func ( *Type) () int {
	return rtype_NumField()
}

//go:linkname rtype_NumIn reflect.(*rtype).NumIn
//go:noescape
func rtype_NumIn(*Type) int

func ( *Type) () int {
	return rtype_NumIn()
}

//go:linkname rtype_NumOut reflect.(*rtype).NumOut
//go:noescape
func rtype_NumOut(*Type) int

func ( *Type) () int {
	return rtype_NumOut()
}

//go:linkname rtype_Out reflect.(*rtype).Out
//go:noescape
func rtype_Out(*Type, int) reflect.Type

//go:linkname PtrTo reflect.(*rtype).ptrTo
//go:noescape
func (*Type) *Type

func ( *Type) ( int) reflect.Type {
	return rtype_Out(, )
}

//go:linkname IfaceIndir reflect.ifaceIndir
//go:noescape
func (*Type) bool

//go:linkname RType2Type reflect.toType
//go:noescape
func ( *Type) reflect.Type

type emptyInterface struct {
	_   *Type
	ptr unsafe.Pointer
}

func ( reflect.Type) *Type {
	return (*Type)(((*emptyInterface)(unsafe.Pointer(&))).ptr)
}