code: func isNoCopyType(typ types.Type) bool {
  	st, ok := typ.Underlying().(*types.Struct)
  	if !ok {
  		return false
  	}
  	if st.NumFields() != 0 {
  		return false
  	}
  
  	named, ok := typ.(*types.Named)
  	if !ok {
  		return false
  	}
  	if named.NumMethods() != 1 {
  		return false
  	}
  	meth := named.Method(0)
  	if meth.Name() != "Lock" {
  		return false
  	}
  	sig := meth.Type().(*types.Signature)
  	if sig.Params().Len() != 0 || sig.Results().Len() != 0 {
  		return false
  	}
  	return true
  }
docs: // isNoCopyType reports whether a type represents the NoCopy sentinel
  // type. The NoCopy type is a named struct with no fields and exactly
  // one method `func Lock()` that is empty.
  //
  // FIXME(dh): currently we're not checking that the function body is
  // empty.