28fc0ccb690cad787da840572c73fd3e3311047d |
03-Oct-2017 |
cushon <cushon@google.com> |
Don't reject v53 class files MOE_MIGRATED_REVID=170776303
lassReader.java
|
33b30eb88e4724f61d7ea86b0a6564cb702e6615 |
07-Aug-2017 |
cushon <cushon@google.com> |
Fix a constant pool reading bug Handle > Short.MAX_VALUE constant pool entries by storing unsigned shorts as ints instead of signed shorts. I noticed this testing with the full implementation jar for a very large proto; apparently we've never hit this limit for ijar/hjars. MOE_MIGRATED_REVID=164506910
nnotationWriter.java
lassWriter.java
onstantPool.java
onstantPoolReader.java
|
2a8197d78edb2eedbf60d6b2f0544e1e0760a488 |
14-Apr-2017 |
cushon <cushon@google.com> |
Break turbine integration test dependency on javap MOE_MIGRATED_REVID=153125370
yteReader.java
onstantPoolReader.java
|
4a9a664dd17b17d4ca4641f6267a59f644f20a07 |
01-Feb-2017 |
cushon <cushon@google.com> |
Fix handling of unnamed inner classes The InnerClass attributes for anonymous classes have a null class name, which turbine shouldn't try to read. This fixes a NPE when repackaging supertypes loaded from implementation jars; turbine itself doesn't write InnerClass attributes for anonymous classes. MOE_MIGRATED_REVID=146268069
lassFile.java
lassReader.java
|
d1509927c68b994ecb9eb95a8ae8478da9f04ed4 |
26-Jan-2017 |
cushon <cushon@google.com> |
Repackage supertypes of compiled classes in the output jar so header compilations can be performed without transitive dependencies on the classpath. MOE_MIGRATED_REVID=145636768
lassReader.java
|
43e3d0488f0e37357480462a88de3b36a3220d1e |
17-Jan-2017 |
cushon <cushon@google.com> |
Make an assertion more useful MOE_MIGRATED_REVID=144728052
ig/SigWriter.java
|
7700e365dd9cd14b9a03bda4cf10bc9f7dc1d8d4 |
20-Dec-2016 |
cushon <cushon@google.com> |
Fix a class reading bug CONSTANT_Utf8_info lengths were incorrectly being read as signed shorts, instead of unsigned shorts. MOE_MIGRATED_REVID=142568161
yteReader.java
lassReader.java
onstantPoolReader.java
|
9278ff215c8a8c45c054ca71599df4cdff738666 |
29-Nov-2016 |
cushon <cushon@google.com> |
Resume emitting deprecated attributes 46527d994f4cd68a857a907abebe69559baf57eb was a mistake: javac only emits warnings if the attribute is present, the annotation is not sufficient. This doesn't change the decision to ignore @deprecated javadoc tags. MOE_MIGRATED_REVID=140423585
ttribute.java
ttributeWriter.java
owerAttributes.java
|
3d2df35d983a31bc7a68e1d76b7c71956f477871 |
17-Nov-2016 |
cushon <cushon@google.com> |
Emit MethodParameters attributes MOE_MIGRATED_REVID=139397608
ttribute.java
ttributeWriter.java
lassFile.java
lassReader.java
owerAttributes.java
|
46527d994f4cd68a857a907abebe69559baf57eb |
16-Nov-2016 |
cushon <cushon@google.com> |
Stop emitting Deprecated attributes These have been obsolete since 1.5, and implementing them properly would require parsing @deprecated javadoc tags. MOE_MIGRATED_REVID=139261687
ttribute.java
ttributeWriter.java
owerAttributes.java
|
86eb6f1c5b02fc461b47602de67551361f9d695f |
03-Nov-2016 |
cushon <cushon@google.com> |
Support repeatable annotations Also consolidate handling of annotation meta-information (target, retention, and now repeatable). MOE_MIGRATED_REVID=138010789
lassReader.java
|
cb5c2b23fe5c5adda2085043425e882009c456eb |
01-Nov-2016 |
cushon <cushon@google.com> |
Set type_argument_index to zero for non-type argument type_path_kinds as required by JVMS 4.7.20.2. MOE_MIGRATED_REVID=137770084
lassFile.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
lassReader.java
|
3e5b0c401c8d93182e9f0ce6f0de81f7574f5aca |
29-Oct-2016 |
cushon <cushon@google.com> |
Initial type annotation support Handle binding of type annotations, evaluation of type annotation arguments, and lowering to bytecode for all type annotations kinds that can appears in headers. Currently type annotations are identified syntactically, we need to read @Target to deal with ambiguous declarations on fields and method return types (e.g. `@A int x;` could be `TYPE_USE` or `FIELD` or both). MOE_MIGRATED_REVID=137566512
nnotationWriter.java
ttribute.java
ttributeWriter.java
lassFile.java
lassReader.java
owerAttributes.java
ig/Sig.java
ig/SigParser.java
ig/SigWriter.java
|
d8ea288afe5a7df01f74a0c5b55e489b0dc62349 |
25-Oct-2016 |
cushon <cushon@google.com> |
Don't crash when compiling java.lang.Object MOE_MIGRATED_REVID=137196464
lassWriter.java
onstantPool.java
|
4b69277c912bf7ab6f9915f407ec5cb207566747 |
25-Oct-2016 |
cushon <cushon@google.com> |
Fix type canonicalization of recursive types, and wildcards Instantiate types recursively; previously [T/e]A<T> worked but [T/e]A<B<T>> didn't. Also handle instantiating arrays with parametric element types, which can't appear as top-level types during canonicalization but can appear as type arguments (e.g. [T/e]A<T[]> -> A<e[]>). The array instantiation case is interesting because it allows the creation of arrays with wildcard element types. The JVMS signature grammar [1] doesn't actually allow that, but both javac and ecj can be coerced into emitting it: class A<X> { class I {} } class Test { class B<Y> extends A<Y[]> {} B<?>.I i; // LA<[*>.I; } To support this, restructure the type and signature models to make wildcards first-class types, instead of only allowing them as top-level type arguments. [1] https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.9.1 MOE_MIGRATED_REVID=137101539
ig/Sig.java
ig/SigParser.java
ig/SigWriter.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
nnotationWriter.java
ttribute.java
ttributeWriter.java
lassFile.java
lassReader.java
owerAttributes.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
nnotationWriter.java
ttribute.java
ttributeWriter.java
lassFile.java
owerAttributes.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
ttribute.java
ttributeWriter.java
lassWriter.java
onstantPool.java
owerAttributes.java
|
d1a195115e72855d8928c07ff4a166759546ed23 |
04-Oct-2016 |
cushon <cushon@google.com> |
Bound nodes with types, and initial lowering to bytecode Add the model used by all remaining binding phases, and lowering from that model to bytecode. MOE_MIGRATED_REVID=135135482
onstantPool.java
owerAttributes.java
|
783f80f37ad70eba7fd4b5e11a34854724227bf6 |
19-Sep-2016 |
cushon <cushon@google.com> |
Class file writing Constant field initializers, annotations, and a bunch of constant pool entry kinds are absent, we won't need them for a bit. MOE_MIGRATED_REVID=133635333
ttribute.java
ttributeWriter.java
lassReader.java
lassWriter.java
onstantPool.java
owerAttributes.java
|
38a11c000aff3774567d354577cea2d2af65aaa7 |
19-Sep-2016 |
cushon <cushon@google.com> |
JVMS 4.3.4 signature parsing and output The next phase of header compilation will perform type analysis, and it needs to be able to reason about types in bytecode. This is a step towards exposing type information in BytecodeBoundClass. Writing signatures back to strings won't be needed until lowering is implemented, but it makes this easier to test. MOE_MIGRATED_REVID=133627571
ig/Sig.java
ig/SigParser.java
ig/SigWriter.java
|
d01fe55c0e5007580f441eb336a14473e00b8f54 |
19-Sep-2016 |
cushon <cushon@google.com> |
Consolidate ClassFile model types as members of ClassFile This frees up some space in the top-level namespace for other types. MOE_MIGRATED_REVID=133626943
nnotationInfo.java
lassFile.java
lassReader.java
ieldInfo.java
nnerClass.java
ethodInfo.java
|
fe7450192ce5268d73f19b404ca8d454023b3569 |
14-Sep-2016 |
cushon <cushon@google.com> |
Class file reading The is the first half of supporting classpaths in analysis. The data model is going to be shared by the code that eventually lowers the classes being compiled to bytecode. MOE_MIGRATED_REVID=133150966
nnotationInfo.java
yteReader.java
lassFile.java
lassReader.java
onstantPoolReader.java
ieldInfo.java
nnerClass.java
ethodInfo.java
|