Comments (3)
Thanks for the report, especially the simple code to reproduce. I'll see if I can take a look at this, unless you have started on a fix already?
from pretty.
I don't have a fix, but my suggestion would probably be to call out the field that differs but not compute the diff itself when the field is private.
from pretty.
I looked into this last night, but I had some degree of trouble deciphering the output from diff_test.go
after making some changes in an attempt to fix the problem.
Your suggestion makes some sense, but it doesn't really address the use case of someone trying to determine how the values are actually different. I think that limits its utility (granted, it's better than a panic!).
I don't have more time in my schedule to look at it this week, unfortunately. If I had the time, I would start by updating the tests to cover your case (use a struct that has typed private fields, not just interface{} fields, including some as pointers) and also consider updating the test helpers to make it easier to decipher the failure messages. With that, the changes in diff.go should be fairly straightforward.
On Jan 27, 2015, at 19:37, David Gouldin [email protected] wrote:
I don't have a fix, but my suggestion would probably be to call out the field that differs but not compute the diff itself when the field is private.
—
Reply to this email directly or view it on GitHub.
from pretty.
Related Issues (20)
- Minor golint issues HOT 1
- Diff doesn't return difference b/w nil of slice and empty slice
- Set max depth HOT 1
- formatting of maps is invalid go code HOT 3
- Allow an option for 'deterministic' iteration order for map prints HOT 4
- Support fuzzy matching for floating point types
- type compare HOT 1
- Tag a release? HOT 2
- TestGoSyntax broken at v0.1.0 in Go 1.11
- Is there a way how I can skip zero values? HOT 1
- Go 1.15: conversion from int to string yields a string of one rune
- Reference looping causes recursion to fail to terminate, resulting in stack overflow HOT 2
- Request a new tagged release HOT 2
- PANIC=Format method: runtime error: invalid memory address or nil pointer dereference with go 1.17 HOT 8
- When I try to sync dependencies for this I get an error. HOT 2
- Expanded the print depth limit from 10 to 30.
- Go version is very old HOT 2
- Print uint in decimal? HOT 3
- false positive in cycle check
- Can non-nil interface fields be considered `nonzero`?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pretty.