|
|
|
@ -2,6 +2,7 @@ package dev.openrs2.deob.ast.transform |
|
|
|
|
|
|
|
|
|
import com.github.javaparser.ast.CompilationUnit |
|
|
|
|
import com.github.javaparser.ast.expr.MethodCallExpr |
|
|
|
|
import dev.openrs2.deob.ast.util.isClass |
|
|
|
|
import dev.openrs2.deob.ast.util.walk |
|
|
|
|
import javax.inject.Singleton |
|
|
|
|
|
|
|
|
@ -17,14 +18,10 @@ class NewInstanceTransformer : Transformer() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
expr.scope.ifPresent { scope -> |
|
|
|
|
if (!scope.isMethodCallExpr || scope.asMethodCallExpr().nameAsString !in CONSTRUCTOR_METHODS) { |
|
|
|
|
if (scope.calculateResolvedType().isClass()) { |
|
|
|
|
expr.setScope(MethodCallExpr(scope.clone(), "getDeclaredConstructor")) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private companion object { |
|
|
|
|
private val CONSTRUCTOR_METHODS = setOf("getConstructor", "getDeclaredConstructor") |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|