|
|
|
@ -354,10 +354,12 @@ public class PropertyOrFieldReference extends SpelNodeImpl { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public TypedValue getValue() { |
|
|
|
public TypedValue getValue() { |
|
|
|
TypedValue value = this.ref.getValueInternal(this.contextObject, this.evalContext, this.autoGrowNullReferences); |
|
|
|
TypedValue value = |
|
|
|
if (this.ref.cachedReadAccessor instanceof CompilablePropertyAccessor) { |
|
|
|
this.ref.getValueInternal(this.contextObject, this.evalContext, this.autoGrowNullReferences); |
|
|
|
CompilablePropertyAccessor accessor = (CompilablePropertyAccessor) this.ref.cachedReadAccessor; |
|
|
|
PropertyAccessor accessorToUse = this.ref.cachedReadAccessor; |
|
|
|
this.ref.exitTypeDescriptor = CodeFlow.toDescriptor(accessor.getPropertyType()); |
|
|
|
if (accessorToUse instanceof CompilablePropertyAccessor) { |
|
|
|
|
|
|
|
this.ref.exitTypeDescriptor = |
|
|
|
|
|
|
|
CodeFlow.toDescriptor(((CompilablePropertyAccessor) accessorToUse).getPropertyType()); |
|
|
|
} |
|
|
|
} |
|
|
|
return value; |
|
|
|
return value; |
|
|
|
} |
|
|
|
} |
|
|
|
|