aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author zaaarf <zaaarf@proton.me>2023-03-15 20:07:27 +0100
committer zaaarf <zaaarf@proton.me>2023-03-15 20:07:27 +0100
commita425ce62f9c9db49dde81c3bc437451c69f0a363 (patch)
tree4ed87dcd3232c533f59197ff679b3a0bfefe753f
parentd93f9388e80af18ef1729c1ff47eaa7f88bf00fc (diff)
fix: removed unsafeOverride, i had a brainfart
-rw-r--r--src/main/java/ftbsc/lll/processor/LilleroProcessor.java37
1 files changed, 4 insertions, 33 deletions
diff --git a/src/main/java/ftbsc/lll/processor/LilleroProcessor.java b/src/main/java/ftbsc/lll/processor/LilleroProcessor.java
index 1e3bf40..2040f20 100644
--- a/src/main/java/ftbsc/lll/processor/LilleroProcessor.java
+++ b/src/main/java/ftbsc/lll/processor/LilleroProcessor.java
@@ -421,7 +421,7 @@ public class LilleroProcessor extends AbstractProcessor {
throw new AmbiguousDefinitionException(String.format("Unclear target for injector %s::%s!", cl.getSimpleName(), inj.getSimpleName()));
else toGenerate.put(
String.format("%sInjector%d", cl.getSimpleName(), iterationNumber),
- new InjectorInfo(inj, findRealMethodFromStub(injectionTarget))
+ new InjectorInfo(inj, injectionTarget)
);
iterationNumber++;
}
@@ -432,7 +432,7 @@ public class LilleroProcessor extends AbstractProcessor {
String targetMethodDescriptor = descriptorFromExecutableElement(toGenerate.get(injName).target);
String targetMethodName = findMemberName(targetClassFQN, toGenerate.get(injName).target.getSimpleName().toString(), targetMethodDescriptor, this.mapper);
- MethodSpec stubOverride = unsafeOverriding(toGenerate.get(injName).target)
+ MethodSpec stubOverride = MethodSpec.overriding(toGenerate.get(injName).target)
.addStatement("throw new $T($S)", RuntimeException.class, "This is a stub and should not have been called")
.build();
@@ -497,35 +497,6 @@ public class LilleroProcessor extends AbstractProcessor {
}
/**
- * Identical to {@link MethodSpec#overriding(ExecutableElement)}, but does not check for
- * the accessor level of the target method. May be used to override package-private methods
- * that are technically classified as private, but may be accessed under certain conditions.
- * @param target the method to override
- * @return the built method spec
- * @since 0.3.0
- * @see MethodSpec#overriding(ExecutableElement)
- */
- private static MethodSpec.Builder unsafeOverriding(ExecutableElement target) {
- MethodSpec.Builder bd =
- MethodSpec.methodBuilder(target.getSimpleName().toString())
- .addAnnotation(Override.class)
- .addModifiers(target.getModifiers())
- .returns(TypeName.get(target.getReturnType()));
- bd.modifiers.remove(Modifier.DEFAULT);
- bd.modifiers.remove(Modifier.ABSTRACT);
- for (TypeParameterElement typeParameterElement : target.getTypeParameters()) {
- TypeVariable var = (TypeVariable) typeParameterElement.asType();
- bd.addTypeVariable(TypeVariableName.get(var));
- }
- for(VariableElement p : target.getParameters())
- bd.addParameter(TypeName.get(p.asType()), p.getSimpleName().toString(), p.getModifiers().toArray(new Modifier[0]));
- bd.varargs(target.isVarArgs());
- for(TypeMirror thrownType : target.getThrownTypes())
- bd.addException(TypeName.get(thrownType));
- return bd;
- }
-
- /**
* Finds any method annotated with {@link FindMethod} or {@link FindField} within the given
* class, and builds the {@link MethodSpec} necessary for building it.
* @param cl the class to search
@@ -540,7 +511,7 @@ public class LilleroProcessor extends AbstractProcessor {
.filter(m -> !m.getModifiers().contains(Modifier.FINAL)) //in case someone is trying to be funny
.forEach(m -> {
ExecutableElement targetMethod = findRealMethodFromStub(m);
- MethodSpec.Builder b = unsafeOverriding(m);
+ MethodSpec.Builder b = MethodSpec.overriding(m);
String targetParentFQN = findClassName(((TypeElement) targetMethod.getEnclosingElement()).getQualifiedName().toString(), mapper);
@@ -569,7 +540,7 @@ public class LilleroProcessor extends AbstractProcessor {
.filter(m -> !m.getModifiers().contains(Modifier.FINAL))
.forEach(m -> {
VariableElement targetField = findField(m);
- MethodSpec.Builder b = unsafeOverriding(m);
+ MethodSpec.Builder b = MethodSpec.overriding(m);
String targetParentFQN = findClassName(((TypeElement) targetField.getEnclosingElement()).getQualifiedName().toString(), mapper);