Class RecordRewriter
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.RecordRewriter
-
public class RecordRewriter extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
RecordRewriter.IsCanonicalConstructor
(package private) static class
RecordRewriter.ThisCheck
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Set<AccessFlag>
recordFieldFlags
private static java.util.Set<AccessFlagMethod>
recordGetterFlags
-
Constructor Summary
Constructors Constructor Description RecordRewriter()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static boolean
classArgEq(Expression expression, JavaTypeInstance thisType)
private static boolean
cmpArgsEq(Expression cmpArgs, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
private static ClassFileField
getCFF(LValue lhs, JavaRefTypeInstance thisType)
private static Method
getMethod(ClassFile classFile, java.util.List<JavaTypeInstance> args, java.lang.String name)
private static StructuredStatement
getSingleCodeLine(Method method)
private static void
hideConstructorIfEmpty(Method canonicalCons)
private static void
hideDefaultGetter(Method method, ClassFileField classFileField, JavaRefTypeInstance thisType)
private static void
hideDefaultUtilityMethods(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
private static void
hideEquals(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
private static void
hideHashCode(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
private static void
hideIfMatch(JavaTypeInstance thisType, java.util.List<ClassFileField> fields, Method method, WildcardMatch wcm, StructuredStatement stm)
private static void
hideToString(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
private static boolean
methodHandleEq(Expression expression, java.lang.String name)
private static boolean
removeImplicitAssignments(Method canonicalCons, java.util.List<ClassFileField> instances, JavaRefTypeInstance thisType)
static void
rewrite(ClassFile classFile, DCCommonState state)
private static boolean
rewriteIfRecord(ClassFile classFile, DCCommonState state)
private static boolean
stringArgEq(Expression expression, java.lang.String name)
-
-
-
Field Detail
-
recordFieldFlags
private static java.util.Set<AccessFlag> recordFieldFlags
-
recordGetterFlags
private static java.util.Set<AccessFlagMethod> recordGetterFlags
-
-
Method Detail
-
rewrite
public static void rewrite(ClassFile classFile, DCCommonState state)
-
rewriteIfRecord
private static boolean rewriteIfRecord(ClassFile classFile, DCCommonState state)
-
hideDefaultUtilityMethods
private static void hideDefaultUtilityMethods(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
-
hideEquals
private static void hideEquals(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
-
hideToString
private static void hideToString(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
-
hideHashCode
private static void hideHashCode(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
-
hideIfMatch
private static void hideIfMatch(JavaTypeInstance thisType, java.util.List<ClassFileField> fields, Method method, WildcardMatch wcm, StructuredStatement stm)
-
stringArgEq
private static boolean stringArgEq(Expression expression, java.lang.String name)
-
methodHandleEq
private static boolean methodHandleEq(Expression expression, java.lang.String name)
-
classArgEq
private static boolean classArgEq(Expression expression, JavaTypeInstance thisType)
-
cmpArgsEq
private static boolean cmpArgsEq(Expression cmpArgs, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
-
getMethod
private static Method getMethod(ClassFile classFile, java.util.List<JavaTypeInstance> args, java.lang.String name)
-
getSingleCodeLine
private static StructuredStatement getSingleCodeLine(Method method)
-
hideDefaultGetter
private static void hideDefaultGetter(Method method, ClassFileField classFileField, JavaRefTypeInstance thisType)
-
hideConstructorIfEmpty
private static void hideConstructorIfEmpty(Method canonicalCons)
-
removeImplicitAssignments
private static boolean removeImplicitAssignments(Method canonicalCons, java.util.List<ClassFileField> instances, JavaRefTypeInstance thisType)
-
getCFF
private static ClassFileField getCFF(LValue lhs, JavaRefTypeInstance thisType)
-
-