Skip to content

Commit d3feea9

Browse files
committed
Dito (why did I add constructor support)
1 parent 61d2785 commit d3feea9

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

src/main/java/com/btk5h/skriptmirror/skript/reflect/ExprJavaCall.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -851,26 +851,22 @@ private static <T extends AccessibleObject> T getAccess(T member) {
851851

852852
@Nullable
853853
private static Member getSuperMember(Member member) {
854-
if (!(member instanceof Executable))
854+
if (!(member instanceof Method))
855855
return null;
856-
Executable executable = (Executable) member;
857-
if ((executable.getModifiers() & Modifier.STATIC) != 0)
856+
Method method = (Method) member;
857+
if ((method.getModifiers() & Modifier.STATIC) != 0)
858858
return null;
859859

860-
return getSuperMember(executable, executable.getDeclaringClass());
860+
return getSuperMember(method, method.getDeclaringClass());
861861
}
862862

863863
@Nullable
864-
private static Executable getSuperMember(Executable executable, Class<?> declaringClass) {
865-
List<Executable> executables = new ArrayList<>();
866-
executables.addAll(Arrays.asList(declaringClass.getDeclaredMethods()));
867-
executables.addAll(Arrays.asList(declaringClass.getDeclaredConstructors()));
868-
869-
if (executable.getDeclaringClass() != declaringClass)
870-
for (Executable loopExecutable : executables) {
871-
if (executable.getName().equals(loopExecutable.getName())
872-
&& Arrays.equals(executable.getParameterTypes(), loopExecutable.getParameterTypes())) {
873-
return loopExecutable;
864+
private static Method getSuperMember(Method method, Class<?> declaringClass) {
865+
if (method.getDeclaringClass() != declaringClass)
866+
for (Method loopMethod : declaringClass.getDeclaredMethods()) {
867+
if (method.getName().equals(loopMethod.getName())
868+
&& Arrays.equals(method.getParameterTypes(), loopMethod.getParameterTypes())) {
869+
return loopMethod;
874870
}
875871
}
876872

@@ -879,9 +875,9 @@ private static Executable getSuperMember(Executable executable, Class<?> declari
879875
superClasses.addAll(Arrays.asList(declaringClass.getInterfaces()));
880876

881877
for (Class<?> superClass : superClasses) {
882-
Executable superExecutable = getSuperMember(executable, superClass);
883-
if (superExecutable != null)
884-
return superExecutable;
878+
Method superMethod = getSuperMember(method, superClass);
879+
if (superMethod != null)
880+
return superMethod;
885881
}
886882

887883
return null;

0 commit comments

Comments
 (0)