a5453051f0c8b71a833f6dc73caaea43bd24a0db |
|
29-Sep-2017 |
cushon <cushon@google.com> |
Fix a crash in constant expression binding MOE_MIGRATED_REVID=170420622
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
33e253bd3b1ce0d4939345229e78523063527eeb |
|
26-Sep-2017 |
cushon <cushon@google.com> |
Improve diagnostics for repeated unrepeatable annotations MOE_MIGRATED_REVID=170009080
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
3de8ed9a49a939e11961146bf5b6a41c20dc7f79 |
|
11-Apr-2017 |
cushon <cushon@google.com> |
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
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
2f66fb86c5de3e13b58b1a521ffc307c8cef1f50 |
|
15-Dec-2016 |
cushon <cushon@google.com> |
Check visibility of static on-demand type imports Move initial modifier handling earlier in binding, and use it to filter private class and fields from on-demand imports. MOE_MIGRATED_REVID=142092576
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
b25a536a58cfc542d70a118aebc30d3a9dea5654 |
|
03-Dec-2016 |
cushon <cushon@google.com> |
Refactor diagnostic handling to use diagnostic codes instead of raw format strings. This will make it easier to recognize errors that merit special handling. MOE_MIGRATED_REVID=140902411
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
cdefacdcf613684b385797d2d4340f3fa7dcce2d |
|
16-Nov-2016 |
cushon <cushon@google.com> |
Fix class declaration annotation-context constant binding Annotation on class declarations can't resolve members of the class. This was previously fixes for simple name type lookup. This fixes it for simple name constant field lookup. MOE_MIGRATED_REVID=139383534
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
5f9257de4904d710941a3f434de0e0c3618a4e75 |
|
16-Nov-2016 |
cushon <cushon@google.com> |
Make constant expression evaluation FP-strict https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.4 MOE_MIGRATED_REVID=139262607
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
d161fb6fcbd2e8ab64abf467823920398ad34b63 |
|
12-Nov-2016 |
cushon <cushon@google.com> |
Coerce annotation array values to the appropriate element type MOE_MIGRATED_REVID=138930155
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
aa81f608f1790015683a9368bc15924fc9c89767 |
|
04-Nov-2016 |
cushon <cushon@google.com> |
Fix class reading of deficient constant types char, byte, and short are encoded as ints in bytecode, so stringifying bytecode constant chars didn't work. Also fix a latent bug with unary operator evaluation. MOE_MIGRATED_REVID=138215540
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
9f3e44c5390f7c1845078865d0ef07357e949080 |
|
03-Nov-2016 |
cushon <cushon@google.com> |
Perform implicit narrowing and widening on field initializer values MOE_MIGRATED_REVID=138014342
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
125eca769fc3038f6466b6f1139b56945bf86ca9 |
|
02-Nov-2016 |
cushon <cushon@google.com> |
Fix simple name lookup of fields If the simple name of a constant field matches an imported type, keep looking. Types should only be considered for qualified type names. MOE_MIGRATED_REVID=137962449
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
c4b9629cb88f39fb5a648e2081f43afbb2685766 |
|
01-Nov-2016 |
cushon <cushon@google.com> |
Handle array class literals, which can appear in annotations MOE_MIGRATED_REVID=137779342
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
16d4fb60dd03fe84f50a96d42db6180a286fc3db |
|
01-Nov-2016 |
cushon <cushon@google.com> |
Fix scope handling during annotation binding When binding annotations on a class declaration, members of that class are not in scope (e.g. for use as class literals in annotation element values). Keep track of the scope that encloses class declaration in addition to the class member scope, and use the former when binding annotations on the class. MOE_MIGRATED_REVID=137767162
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
ecb791c15008191f75be7a7e747bb387530d16d2 |
|
31-Oct-2016 |
cushon <cushon@google.com> |
Disambiguate type annotations on fields, parameters, and methods Given a declaration like `private @A int x;` or `@A private int x;`, there are three possibilities: * `@A` is a declaration annotation on the field * `@A` is a `TYPE_USE` annotation on the type * `@A` sets `TYPE_USE` _and_ `FIELD` targets, and appears in the bytecode as both a declaration annotation and as a type annotation This can't be determined syntactically -- note that the presence of other modifiers before or after the annotation has no bearing on whether the annotation targets the type or the declaration. So, we wait until constant binding is done, read the `@Target` meta-annotation for each ambiguous annotation, and move it to the appropriate location. MOE_MIGRATED_REVID=137749757
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
05878b6cb86f32245891d6e4504a8b1e7fcd2155 |
|
28-Oct-2016 |
cushon <cushon@google.com> |
Refactor in preparation for type annotation support Types will soon depend on annotations, which depend on constants, which may have types. Untangle that by moving bound non-primitive constants (enums, annotations, class literals) to the bound node package, and moving annotation info into the type package. MOE_MIGRATED_REVID=137465249
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
c4fcb03ad72af457d0448f4207085c2a60b4ae52 |
|
26-Oct-2016 |
cushon <cushon@google.com> |
Consider visibility during member resolution Don't resolve inaccessible private or package-protected members in super types. MOE_MIGRATED_REVID=137218921
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
b622e5e85b83090ebec0aa9601c1348e91d20095 |
|
20-Oct-2016 |
cushon <cushon@google.com> |
Fix a crash in constant expression evaluation There's currently no distinction made between evaluating expressions that are legal constant variable initializers and constant expressions that are only value as annotation arguments (class literals, nested annotations, enum constants). Don't crash if a potentially constant variable initializer evaluates to an unsupported constant kind. MOE_MIGRATED_REVID=136738109
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
a086f7ddb24d35d1c45a3524520d8bffbf1f213b |
|
19-Oct-2016 |
cushon <cushon@google.com> |
Fix another non-const expression binding crash It's possible to resolve a qualified prefix of an expression that turns out to be non-constant. MOE_MIGRATED_REVID=136634305
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
806d6a5f4a319f2c00baf2334732024c5bdcacb5 |
|
19-Oct-2016 |
cushon <cushon@google.com> |
Don't crash when evaluating non-constant expressions MOE_MIGRATED_REVID=136542923
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
10cea422ebb6f3c02cc0e1a744bd3b1515e1891e |
|
18-Oct-2016 |
cushon <cushon@google.com> |
Fix annotation-context binding of constants in class files The env of constant variables wasn't being set up to include constants on the classpath when binding annotations. Instead, we can just read the constant values directly from the bound fields if they're already there. MOE_MIGRATED_REVID=136493292
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
b0445ae9c37a1fab07fb5f234653e8ea072bf9fc |
|
18-Oct-2016 |
cushon <cushon@google.com> |
Diagnostic improvements Store position information in the AST, and use it to emit better errors during binding. Refactor some passes to be non-static to make it easier to pass context needed to format diagnostics. MOE_MIGRATED_REVID=136492057
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
75946a85fe655bafc006b96e4ddf01990d5f2f7c |
|
18-Oct-2016 |
cushon <cushon@google.com> |
Fix lookup of fields in interfaces MOE_MIGRATED_REVID=136422410
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
5a010f8e1f9613af8a23aaab28a64d6c83eb48fb |
|
17-Oct-2016 |
cushon <cushon@google.com> |
Best-effort wildcard import handling Static imports of types (on-demand or otherwise) are still unlikely to ever be supported, and performance is worse than single-type and single-member imports. MOE_MIGRATED_REVID=136378350
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
5bd34220e797da6446ba3f69aae9d62023171a9e |
|
17-Oct-2016 |
cushon <cushon@google.com> |
Avoid unnecessary joining and splitting of qualified names MOE_MIGRATED_REVID=136376050
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
c38ee7ae0239899e7f9d0d5243d8bed77836891c |
|
17-Oct-2016 |
cushon <cushon@google.com> |
Handle primitive and void class literals MOE_MIGRATED_REVID=136373334
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
9caa21d0878d450fea8f5fc30be49d3f88c67686 |
|
17-Oct-2016 |
cushon <cushon@google.com> |
Implement unary expressions on more types MOE_MIGRATED_REVID=136368041
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
e76a67fe16eca2332a93f4426e2842275458b008 |
|
12-Oct-2016 |
cushon <cushon@google.com> |
Fix static imports of members of nested types Previously only static imports of members in top-level types were handled correctly. MOE_MIGRATED_REVID=135948776
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
83d53bb2e7f30a1c344f4aaa4320668f9dbc12f4 |
|
12-Oct-2016 |
cushon <cushon@google.com> |
Fix handling of nested annotations MOE_MIGRATED_REVID=135935475
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
3088f83b806b82d866d119e344da274105f42821 |
|
11-Oct-2016 |
cushon <cushon@google.com> |
Full JLS 7 annotation handling Support all annotation values including nested annotations and array initializers, and all declaration annotation sites including parameters and methods. MOE_MIGRATED_REVID=135837401
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
4d51bb2c21dffcb267e9b3a3538117adc6009e57 |
|
08-Oct-2016 |
cushon <cushon@google.com> |
Initial annotation binding and writing Includes declaration annotations on fields and classes, and handling of annotation declarations and retentions. Declaration annotations on methods and parameters, as well as class literal and nested annotation values, are not yet supported. MOE_MIGRATED_REVID=135531109
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
e00c9907c7a2be5cac0133c972a3037c9a02d6a5 |
|
07-Oct-2016 |
cushon <cushon@google.com> |
JLS 15.28 constant expression evaluation MOE_MIGRATED_REVID=135510648
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|
bd2b29bb7fd05aed8481ef8342c09c4e88492c88 |
|
07-Oct-2016 |
cushon <cushon@google.com> |
Constant fields Initial constant field handling. Currently only literal values and references to other fields are supported, constant expression evaluation will be added later. Includes class file writing support for additional literal kinds. MOE_MIGRATED_REVID=135506016
/external/turbine/java/com/google/turbine/binder/ConstEvaluator.java
|