Clone this repo:
  1. 6b9005c Merge pull request #734 from google/sync-master-2019/05/13 by Éamonn McManus · 6 days ago master
  2. 3854a65 Work around an ecj bug in Elements.getAllMembers(). It incorrectly returns static methods from superinterfaces, even though those aren't inherited. This causes AutoValueTest not to compile with ecj on Java 9+, because the MyMap and MyStringMap classes are wrongly shown to contain the static "of()" method that was added to Map in Java 9. AutoValue then tries to use MyMap.of() to construct a default instance of MyMap. by emcmanus · 8 days ago
  3. 5724c0d Use @FormatMethod in AutoAnnotationProcessor. This addresses an ErrorProne warning in [] by emcmanus · 8 days ago
  4. 27244ba In autoannotation.vm, avoid an incompatibility between EscapeVelocity and Apache Velocity. In Velocity, if an Integer multiplication overflows, the result is a Long with the correct value. In EscapeVelocity, the result is an Integer containing the bottom 32 bits of the multiplication. We should fix this incompatibility, but for now we can avoid it by doing the computation in Java rather than in the template. by emcmanus · 8 days ago
  5. 9f36c57 Instead of calling Subject.actual(), store the actual value in a field, and read that. by cpovirk · 13 days ago


A collection of source code generators for Java.


Java is full of code that is mechanical, repetitive, typically untested and sometimes the source of subtle bugs. Sounds like a job for robots!

The Auto subprojects are a collection of code generators that automate those types of tasks. They create the code you would have written, but without the bugs.

Save time. Save code. Save sanity.



Copyright 2013 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.