Fix top-level constant expression evaluation

When evaluating constant expressions at the top level (e.g. in an
annotation on a top-level type declaration), inherited members of the
type being declared are in scope. Members of the type itself are not.
To implement this correctly, distinguish between the symbol used for
visibility checks when resolving fields (origin), and the symbol used
for lexical field lookup (null for top-level types).

MOE_MIGRATED_REVID=152778257
6 files changed
tree: ddb432918bae34a1a1eb7ee64606564fbf50e179
  1. java/
  2. javatests/
  3. proto/
  4. .gitignore
  5. .travis.yml
  6. LICENSE
  7. pom.xml
  8. README.md
  9. turbine.iml
README.md

Turbine

Turbine is a header compiler for Java.