mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 11:50:54 +07:00
[java decompiler] skipping generated module-info statements
GitOrigin-RevId: c2f9cfd88f57e7d59cca54ec090f67f29377ff23
This commit is contained in:
committed by
intellij-monorepo-bot
parent
44d681c795
commit
279c209e61
@@ -308,39 +308,45 @@ public class ClassWriter {
|
||||
List<StructModuleAttribute.RequiresEntry> requiresEntries = moduleAttribute.requires;
|
||||
if (!requiresEntries.isEmpty()) {
|
||||
for (StructModuleAttribute.RequiresEntry requires : requiresEntries) {
|
||||
buffer.appendIndent(1).append("requires ").append(requires.moduleName.replace('/', '.')).append(';').appendLineSeparator();
|
||||
if (!isGenerated(requires.flags)) {
|
||||
buffer.appendIndent(1).append("requires ").append(requires.moduleName.replace('/', '.')).append(';').appendLineSeparator();
|
||||
newLineNeeded = true;
|
||||
}
|
||||
}
|
||||
newLineNeeded = true;
|
||||
}
|
||||
|
||||
List<StructModuleAttribute.ExportsEntry> exportsEntries = moduleAttribute.exports;
|
||||
if (!exportsEntries.isEmpty()) {
|
||||
if (newLineNeeded) buffer.appendLineSeparator();
|
||||
for (StructModuleAttribute.ExportsEntry exports : exportsEntries) {
|
||||
buffer.appendIndent(1).append("exports ").append(exports.packageName.replace('/', '.'));
|
||||
List<String> exportToModules = exports.exportToModules;
|
||||
if (exportToModules.size() > 0) {
|
||||
buffer.append(" to").appendLineSeparator();
|
||||
appendFQClassNames(buffer, exportToModules);
|
||||
if (!isGenerated(exports.flags)) {
|
||||
buffer.appendIndent(1).append("exports ").append(exports.packageName.replace('/', '.'));
|
||||
List<String> exportToModules = exports.exportToModules;
|
||||
if (exportToModules.size() > 0) {
|
||||
buffer.append(" to").appendLineSeparator();
|
||||
appendFQClassNames(buffer, exportToModules);
|
||||
}
|
||||
buffer.append(';').appendLineSeparator();
|
||||
newLineNeeded = true;
|
||||
}
|
||||
buffer.append(';').appendLineSeparator();
|
||||
}
|
||||
newLineNeeded = true;
|
||||
}
|
||||
|
||||
List<StructModuleAttribute.OpensEntry> opensEntries = moduleAttribute.opens;
|
||||
if (!opensEntries.isEmpty()) {
|
||||
if (newLineNeeded) buffer.appendLineSeparator();
|
||||
for (StructModuleAttribute.OpensEntry opens : opensEntries) {
|
||||
buffer.appendIndent(1).append("opens ").append(opens.packageName.replace('/', '.'));
|
||||
List<String> opensToModules = opens.opensToModules;
|
||||
if (opensToModules.size() > 0) {
|
||||
buffer.append(" to").appendLineSeparator();
|
||||
appendFQClassNames(buffer, opensToModules);
|
||||
if (!isGenerated(opens.flags)) {
|
||||
buffer.appendIndent(1).append("opens ").append(opens.packageName.replace('/', '.'));
|
||||
List<String> opensToModules = opens.opensToModules;
|
||||
if (opensToModules.size() > 0) {
|
||||
buffer.append(" to").appendLineSeparator();
|
||||
appendFQClassNames(buffer, opensToModules);
|
||||
}
|
||||
buffer.append(';').appendLineSeparator();
|
||||
newLineNeeded = true;
|
||||
}
|
||||
buffer.append(';').appendLineSeparator();
|
||||
}
|
||||
newLineNeeded = true;
|
||||
}
|
||||
|
||||
List<String> usesEntries = moduleAttribute.uses;
|
||||
@@ -363,6 +369,10 @@ public class ClassWriter {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isGenerated(int flags) {
|
||||
return (flags & (CodeConstants.ACC_SYNTHETIC | CodeConstants.ACC_MANDATED)) != 0;
|
||||
}
|
||||
|
||||
private static void addTracer(StructClass cls, StructMethod method, BytecodeMappingTracer tracer) {
|
||||
StructLineNumberTableAttribute table = method.getAttribute(StructGeneralAttribute.ATTRIBUTE_LINE_NUMBER_TABLE);
|
||||
tracer.setLineNumberTable(table);
|
||||
@@ -1266,4 +1276,4 @@ public class ClassWriter {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -45,11 +45,11 @@ public class StructModuleAttribute extends StructGeneralAttribute {
|
||||
List<RequiresEntry> requires = new ArrayList<>(requiresCount);
|
||||
for (int i = 0; i < requiresCount; i++) {
|
||||
int moduleNameIndex = data.readUnsignedShort();
|
||||
int moduleFlags = data.readUnsignedShort();
|
||||
int requiresFlags = data.readUnsignedShort();
|
||||
int versionIndex = data.readUnsignedShort();
|
||||
String moduleName = pool.getPrimitiveConstant(moduleNameIndex).getString();
|
||||
String version = versionIndex == 0 ? null : pool.getPrimitiveConstant(versionIndex).getString();
|
||||
requires.add(new RequiresEntry(moduleName, moduleFlags, version));
|
||||
requires.add(new RequiresEntry(moduleName, requiresFlags, version));
|
||||
}
|
||||
return requires;
|
||||
}
|
||||
@@ -119,36 +119,36 @@ public class StructModuleAttribute extends StructGeneralAttribute {
|
||||
|
||||
public static final class RequiresEntry {
|
||||
public final String moduleName;
|
||||
public final int moduleFlags;
|
||||
public final int flags;
|
||||
public final String moduleVersion;
|
||||
|
||||
public RequiresEntry(String moduleName, int moduleFlags, String moduleVersion) {
|
||||
public RequiresEntry(String moduleName, int flags, String moduleVersion) {
|
||||
this.moduleName = moduleName;
|
||||
this.moduleFlags = moduleFlags;
|
||||
this.flags = flags;
|
||||
this.moduleVersion = moduleVersion;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class ExportsEntry {
|
||||
public final String packageName;
|
||||
public final int exportsFlags;
|
||||
public final int flags;
|
||||
public final List<String> exportToModules;
|
||||
|
||||
public ExportsEntry(String packageName, int exportsFlags, List<String> exportToModules) {
|
||||
public ExportsEntry(String packageName, int flags, List<String> exportToModules) {
|
||||
this.packageName = packageName;
|
||||
this.exportsFlags = exportsFlags;
|
||||
this.flags = flags;
|
||||
this.exportToModules = exportToModules;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class OpensEntry {
|
||||
public final String packageName;
|
||||
public final int opensFlags;
|
||||
public final int flags;
|
||||
public final List<String> opensToModules;
|
||||
|
||||
public OpensEntry(String packageName, int exportsFlags, List<String> exportToModules) {
|
||||
public OpensEntry(String packageName, int flags, List<String> exportToModules) {
|
||||
this.packageName = packageName;
|
||||
this.opensFlags = exportsFlags;
|
||||
this.flags = flags;
|
||||
this.opensToModules = exportToModules;
|
||||
}
|
||||
}
|
||||
@@ -162,4 +162,4 @@ public class StructModuleAttribute extends StructGeneralAttribute {
|
||||
this.implementationNames = implementationNames;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,8 +1,8 @@
|
||||
import pkg.test1.TestModuleAnno;
|
||||
import sample.pkg1.TestModuleAnno;
|
||||
|
||||
@TestModuleAnno("...")
|
||||
module sample.module {
|
||||
requires java.base;
|
||||
requires java.desktop;
|
||||
|
||||
exports sample.pkg1;
|
||||
exports sample.pkg2 to
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pkg.test1;
|
||||
package sample.pkg1;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import pkg.test1.TestModuleAnno;
|
||||
import sample.pkg1.TestModuleAnno;
|
||||
|
||||
@TestModuleAnno("...")
|
||||
module sample.module {
|
||||
requires java.base;
|
||||
requires java.desktop;
|
||||
|
||||
uses java.util.spi.ToolProvider;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user