Fix AOT code generation for autowired inner class constructor
Prior to this commit, argument index handling in AutowiredArgumentsCodeGenerator suffered from an off-by-one error when generating code for an autowired inner class constructor. Since the startIndex is already properly calculated for an inner class in InstanceSupplierCodeGenerator.buildGetInstanceMethodForConstructor(...), there is no need to adjust the argument indexes within AutowiredArgumentsCodeGenerator.generateCode(...). Closes gh-34974 Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
This commit is contained in:
committed by
Sam Brannen
parent
f207c0ed5c
commit
c2d678879f
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -68,10 +68,10 @@ public class AutowiredArgumentsCodeGenerator {
|
||||
for (int i = startIndex; i < parameterTypes.length; i++) {
|
||||
code.add(i > startIndex ? ", " : "");
|
||||
if (!ambiguous) {
|
||||
code.add("$L.get($L)", variableName, i - startIndex);
|
||||
code.add("$L.get($L)", variableName, i);
|
||||
}
|
||||
else {
|
||||
code.add("$L.get($L, $T.class)", variableName, i - startIndex, parameterTypes[i]);
|
||||
code.add("$L.get($L, $T.class)", variableName, i, parameterTypes[i]);
|
||||
}
|
||||
}
|
||||
return code.build();
|
||||
|
||||
Reference in New Issue
Block a user