// Copyright 2024 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package reflect

import (
	
	
	_ 
)

// Widely used packages access these symbols using linkname,
// most notably:
//  - github.com/goccy/go-json
//  - github.com/goccy/go-reflect
//  - github.com/sohaha/zlsgo
//  - github.com/undefinedlabs/go-mpatch
//
// Do not remove or change the type signature.
// See go.dev/issue/67401
// and go.dev/issue/67279.

// ifaceIndir reports whether t is stored indirectly in an interface value.
// It is no longer used by this package and is here entirely for the
// linkname uses.
//
//go:linkname unusedIfaceIndir reflect.ifaceIndir
func ( *abi.Type) bool {
	return .Kind_&abi.KindDirectIface == 0
}

//go:linkname valueInterface

// The compiler doesn't allow linknames on methods, for good reasons.
// We use this trick to push linknames of the methods.
// Do not call them in this package.

//go:linkname badlinkname_rtype_Align reflect.(*rtype).Align
func (*rtype) int

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

//go:linkname badlinkname_rtype_Bits reflect.(*rtype).Bits
func (*rtype) int

//go:linkname badlinkname_rtype_ChanDir reflect.(*rtype).ChanDir
func (*rtype) ChanDir

//go:linkname badlinkname_rtype_Comparable reflect.(*rtype).Comparable
func (*rtype) bool

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

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

//go:linkname badlinkname_rtype_Field reflect.(*rtype).Field
func (*rtype, int) StructField

//go:linkname badlinkname_rtype_FieldAlign reflect.(*rtype).FieldAlign
func (*rtype) int

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

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

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

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

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

//go:linkname badlinkname_rtype_IsVariadic reflect.(*rtype).IsVariadic
func (*rtype) bool

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

//go:linkname badlinkname_rtype_Kind reflect.(*rtype).Kind
func (*rtype) Kind

//go:linkname badlinkname_rtype_Len reflect.(*rtype).Len
func (*rtype) int

//go:linkname badlinkname_rtype_Method reflect.(*rtype).Method
func (*rtype, int) Method

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

//go:linkname badlinkname_rtype_Name reflect.(*rtype).Name
func (*rtype) string

//go:linkname badlinkname_rtype_NumField reflect.(*rtype).NumField
func (*rtype) int

//go:linkname badlinkname_rtype_NumIn reflect.(*rtype).NumIn
func (*rtype) int

//go:linkname badlinkname_rtype_NumMethod reflect.(*rtype).NumMethod
func (*rtype) int

//go:linkname badlinkname_rtype_NumOut reflect.(*rtype).NumOut
func (*rtype) int

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

//go:linkname badlinkname_rtype_PkgPath reflect.(*rtype).PkgPath
func (*rtype) string

//go:linkname badlinkname_rtype_Size reflect.(*rtype).Size
func (*rtype) uintptr

//go:linkname badlinkname_rtype_String reflect.(*rtype).String
func (*rtype) string

//go:linkname badlinkname_rtype_ptrTo reflect.(*rtype).ptrTo
func (*rtype) *abi.Type

//go:linkname badlinkname_Value_pointer reflect.(*Value).pointer
func (Value) unsafe.Pointer