github.com/v2pro/plz@v0.0.0-20221028024117-e5f9aec5b631/test/go-spew/spew/bypasssafe.go (about)

     1  // Copyright (c) 2015-2016 Dave Collins <dave@davec.name>
     2  //
     3  // Permission to use, copy, modify, and distribute this software for any
     4  // purpose with or without fee is hereby granted, provided that the above
     5  // copyright notice and this permission notice appear in all copies.
     6  //
     7  // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     8  // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     9  // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    10  // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    11  // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    12  // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    13  // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    14  
    15  // NOTE: Due to the following build constraints, this file will only be compiled
    16  // when the code is running on Google App Engine, compiled by GopherJS, or
    17  // "-tags safe" is added to the go build command line.  The "disableunsafe"
    18  // tag is deprecated and thus should not be used.
    19  // +build js appengine safe disableunsafe
    20  
    21  package spew
    22  
    23  import "reflect"
    24  
    25  const (
    26  	// UnsafeDisabled is a build-time constant which specifies whether or
    27  	// not access to the unsafe package is available.
    28  	UnsafeDisabled = true
    29  )
    30  
    31  // unsafeReflectValue typically converts the passed reflect.Value into a one
    32  // that bypasses the typical safety restrictions preventing access to
    33  // unaddressable and unexported data.  However, doing this relies on access to
    34  // the unsafe package.  This is a stub version which simply returns the passed
    35  // reflect.Value when the unsafe package is not available.
    36  func unsafeReflectValue(v reflect.Value) reflect.Value {
    37  	return v
    38  }