From f221cd1c554f42873f4a3b2230d56aaf0bfbbb78 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 26 May 2014 20:03:22 +0400 Subject: [PATCH] single "extends Object" omitted for type parameters (ultimate fix) - sole "extends Object" ignored - correct decompilation of vs. cases --- src/de/fernflower/main/ClassWriter.java | 16 ++++++++-------- .../struct/gen/generics/GenericMain.java | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/de/fernflower/main/ClassWriter.java b/src/de/fernflower/main/ClassWriter.java index a500fa4..e0684ba 100644 --- a/src/de/fernflower/main/ClassWriter.java +++ b/src/de/fernflower/main/ClassWriter.java @@ -411,11 +411,11 @@ public class ClassWriter { writer.write(descriptor.fparameters.get(i)); List lstBounds = descriptor.fbounds.get(i); - int skip = InterpreterUtil.equalObjects(VarType.VARTYPE_OBJECT.value, lstBounds.get(0).value) ? 1 : 0; - if(skip 1 || !"java/lang/Object".equals(lstBounds.get(0).value)) { writer.write(" extends "); - writer.write(GenericMain.getGenericCastTypeName(lstBounds.get(skip))); - for(int j=skip+1;j lstBounds = descriptor.fbounds.get(i); - int skip = InterpreterUtil.equalObjects(VarType.VARTYPE_OBJECT.value, lstBounds.get(0).value) ? 1 : 0; - if(skip 1 || !"java/lang/Object".equals(lstBounds.get(0).value)) { bufstrwriter.write(" extends "); - bufstrwriter.write(GenericMain.getGenericCastTypeName(lstBounds.get(skip))); - for(int j=skip+1;j lstBounds = new ArrayList(); for(;;) { - if(value.charAt(0) == ':') { // empty superclass - lstBounds.add(new GenericType(CodeConstants.TYPE_OBJECT, 0, "java/lang/Object")); + if(value.charAt(0) == ':') { + // empty superclass, skip value = value.substring(1); }