package reflect2

import (
	
	
)

type eface struct {
	rtype unsafe.Pointer
	data  unsafe.Pointer
}

func unpackEFace( interface{}) *eface {
	return (*eface)(unsafe.Pointer(&))
}

func packEFace( unsafe.Pointer,  unsafe.Pointer) interface{} {
	var  interface{}
	 := (*eface)(unsafe.Pointer(&))
	.rtype = 
	.data = 
	return 
}

type UnsafeEFaceType struct {
	unsafeType
}

func newUnsafeEFaceType( *frozenConfig,  reflect.Type) *UnsafeEFaceType {
	return &UnsafeEFaceType{
		unsafeType: *newUnsafeType(, ),
	}
}

func ( *UnsafeEFaceType) ( interface{}) bool {
	if  == nil {
		return true
	}
	 := unpackEFace()
	assertType("Type.IsNil argument 1", .ptrRType, .rtype)
	return .UnsafeIsNil(.data)
}

func ( *UnsafeEFaceType) ( unsafe.Pointer) bool {
	if  == nil {
		return true
	}
	return unpackEFace(*(*interface{})()).data == nil
}

func ( *UnsafeEFaceType) ( interface{}) interface{} {
	 := unpackEFace()
	assertType("Type.Indirect argument 1", .ptrRType, .rtype)
	return .UnsafeIndirect(.data)
}

func ( *UnsafeEFaceType) ( unsafe.Pointer) interface{} {
	return *(*interface{})()
}