| Proto and AutoValue builders provide a fluent interface for constructing | |
| instances. Unlike argument lists, however, they do not prevent the user from | |
| providing multiple values for the same field. | |
| Setting the same field multiple times in the same chained expression is | |
| pointless (as the intermediate value will be overwritten), and can easily mask a | |
| bug, especially if the setter is called with *different* arguments. | |
| ```java | |
| return MyProto.newBuilder() | |
| .setFoo(copy.getFoo()) | |
| .setFoo(copy.getBar()) | |
| .build(); | |
| ``` |