public class TruffleConstantFieldProvider extends Object implements ConstantFieldProvider
ConstantFieldProvider.ConstantFieldTool<T>| Constructor and Description |
|---|
TruffleConstantFieldProvider(ConstantFieldProvider graalConstantFieldProvider,
MetaAccessProvider metaAccess,
KnownTruffleTypes types) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
maybeFinal(ResolvedJavaField field)
Returns
true if a field may be constant folded even though it is not declared as
final. |
<T> T |
readConstantField(ResolvedJavaField field,
ConstantFieldProvider.ConstantFieldTool<T> tool)
Decide whether a read from the
field should be constant folded. |
public TruffleConstantFieldProvider(ConstantFieldProvider graalConstantFieldProvider, MetaAccessProvider metaAccess, KnownTruffleTypes types)
public <T> T readConstantField(ResolvedJavaField field,
ConstantFieldProvider.ConstantFieldTool<T> tool)
ConstantFieldProviderfield should be constant folded. This should return
ConstantFieldProvider.ConstantFieldTool.foldConstant(JavaConstant) or ConstantFieldProvider.ConstantFieldTool.foldStableArray(JavaConstant, int, boolean) if the
read should be constant folded, or null otherwise.readConstantField in interface ConstantFieldProviderpublic boolean maybeFinal(ResolvedJavaField field)
ConstantFieldProvidertrue if a field may be constant folded even though it is not declared as
final. This applies to well-known fields such as String#hash.maybeFinal in interface ConstantFieldProvider