QuiltMC / enigma

A deobfuscation/remapping tool for Java bytecode, fork of cuchaz's Enigma.
GNU Lesser General Public License v3.0
56 stars 31 forks source link

Manually nested mappings show up incorrectly as top-level in the class listing dockers #50

Open sschr15 opened 1 year ago

sschr15 commented 1 year ago

It also completely breaks down as soon as duplicate names are present as shown in the attached image. If saving the mappings in this broken state, it removes the intermediate packages as well.

(This would probably be fixed with an implementation of #41)

image

sschr15 commented 1 year ago

Small manually created test case

sschr15 commented 1 year ago

Test mappings since i added the wrong file to the archive

tiny    2   0   intermediary    named
c   A   quick/fake/nesting/Test
    f   LB; b   fakeInner
    m   (LA;)Ljava/lang/String; b   getTextFromFakeNestingClass
        p   1   var1    test
    m   (LA;)Ljava/lang/String; a   staticGetTestText
        p   0   var0    test
    m   ()Ljava/lang/String;    b   getAGreeting
    m   ()LA;   a   getInstance
    f   LA; a   INSTANCE
    m   ()Ljava/lang/String;    c   getTestText
c   B   quick/fake/nesting/Test$FakeInner
    m   ()Ljava/lang/String;    b   getUpperText
    f   LA; a   test
    m   (LA;)V  <init>  <init>
        p   1   var1    test
    m   ()Ljava/lang/String;    a   getFakeNestingText
c   quick/fake/nesting/App  quick/fake/nesting/App
    m   ()Ljava/lang/String;    a   getGreeting
    m   ([Ljava/lang/String;)V  main    main
        p   0   var0    args
ix0rai commented 1 year ago

@sschr15 as of #96, it now displays like this: image

So no corruption, but manual inner classing needs to implemented in the enigma-swing viewers.