Fix up a few non-immutable members in immutable encoded value implementations

This commit is contained in:
Ben Gruver 2018-01-31 13:26:11 -08:00
parent dea793447f
commit 8bdb50381d
4 changed files with 18 additions and 18 deletions

View File

@ -32,15 +32,15 @@
package org.jf.dexlib2.immutable.value;
import org.jf.dexlib2.base.value.BaseEnumEncodedValue;
import org.jf.dexlib2.iface.reference.FieldReference;
import org.jf.dexlib2.iface.value.EnumEncodedValue;
import org.jf.dexlib2.immutable.reference.ImmutableFieldReference;
import javax.annotation.Nonnull;
public class ImmutableEnumEncodedValue extends BaseEnumEncodedValue implements ImmutableEncodedValue {
@Nonnull protected final FieldReference value;
@Nonnull protected final ImmutableFieldReference value;
public ImmutableEnumEncodedValue(@Nonnull FieldReference value) {
public ImmutableEnumEncodedValue(@Nonnull ImmutableFieldReference value) {
this.value = value;
}
@ -48,8 +48,8 @@ public class ImmutableEnumEncodedValue extends BaseEnumEncodedValue implements I
if (enumEncodedValue instanceof ImmutableEnumEncodedValue) {
return (ImmutableEnumEncodedValue)enumEncodedValue;
}
return new ImmutableEnumEncodedValue(enumEncodedValue.getValue());
return new ImmutableEnumEncodedValue(ImmutableFieldReference.of(enumEncodedValue.getValue()));
}
@Nonnull @Override public FieldReference getValue() { return value; }
@Nonnull @Override public ImmutableFieldReference getValue() { return value; }
}

View File

@ -32,15 +32,15 @@
package org.jf.dexlib2.immutable.value;
import org.jf.dexlib2.base.value.BaseFieldEncodedValue;
import org.jf.dexlib2.iface.reference.FieldReference;
import org.jf.dexlib2.iface.value.FieldEncodedValue;
import org.jf.dexlib2.immutable.reference.ImmutableFieldReference;
import javax.annotation.Nonnull;
public class ImmutableFieldEncodedValue extends BaseFieldEncodedValue implements ImmutableEncodedValue {
@Nonnull protected final FieldReference value;
@Nonnull protected final ImmutableFieldReference value;
public ImmutableFieldEncodedValue(@Nonnull FieldReference value) {
public ImmutableFieldEncodedValue(@Nonnull ImmutableFieldReference value) {
this.value = value;
}
@ -48,8 +48,8 @@ public class ImmutableFieldEncodedValue extends BaseFieldEncodedValue implements
if (fieldEncodedValue instanceof ImmutableFieldEncodedValue) {
return (ImmutableFieldEncodedValue)fieldEncodedValue;
}
return new ImmutableFieldEncodedValue(fieldEncodedValue.getValue());
return new ImmutableFieldEncodedValue(ImmutableFieldReference.of(fieldEncodedValue.getValue()));
}
@Nonnull @Override public FieldReference getValue() { return value; }
@Nonnull @Override public ImmutableFieldReference getValue() { return value; }
}

View File

@ -32,15 +32,15 @@
package org.jf.dexlib2.immutable.value;
import org.jf.dexlib2.base.value.BaseMethodEncodedValue;
import org.jf.dexlib2.iface.reference.MethodReference;
import org.jf.dexlib2.iface.value.MethodEncodedValue;
import org.jf.dexlib2.immutable.reference.ImmutableMethodReference;
import javax.annotation.Nonnull;
public class ImmutableMethodEncodedValue extends BaseMethodEncodedValue implements ImmutableEncodedValue {
@Nonnull protected final MethodReference value;
@Nonnull protected final ImmutableMethodReference value;
public ImmutableMethodEncodedValue(@Nonnull MethodReference value) {
public ImmutableMethodEncodedValue(@Nonnull ImmutableMethodReference value) {
this.value = value;
}
@ -48,8 +48,8 @@ public class ImmutableMethodEncodedValue extends BaseMethodEncodedValue implemen
if (methodEncodedValue instanceof ImmutableMethodEncodedValue) {
return (ImmutableMethodEncodedValue)methodEncodedValue;
}
return new ImmutableMethodEncodedValue(methodEncodedValue.getValue());
return new ImmutableMethodEncodedValue(ImmutableMethodReference.of(methodEncodedValue.getValue()));
}
@Nonnull @Override public MethodReference getValue() { return value; }
@Nonnull @Override public ImmutableMethodReference getValue() { return value; }
}

View File

@ -1314,19 +1314,19 @@ subannotation returns[String annotationType, List<AnnotationElement> elements]
$elements = elements;
};
field_literal returns[FieldReference value]
field_literal returns[ImmutableFieldReference value]
: ^(I_ENCODED_FIELD field_reference)
{
$value = $field_reference.fieldReference;
};
method_literal returns[MethodReference value]
method_literal returns[ImmutableMethodReference value]
: ^(I_ENCODED_METHOD method_reference)
{
$value = $method_reference.methodReference;
};
enum_literal returns[FieldReference value]
enum_literal returns[ImmutableFieldReference value]
: ^(I_ENCODED_ENUM field_reference)
{
$value = $field_reference.fieldReference;