node, (ArrayAccess) targetNode,
source,
eclipseVariableQuery);
}
if(targetNode instanceof FieldAccess) {
FieldAccess target = (FieldAccess) targetNode;
return new StoreFieldInstructionImpl(
node,
source,
new EclipseReferenceFieldAccess(target, eclipseVariableQuery),
eclipseVariableQuery);
}
if(targetNode instanceof SuperFieldAccess) {
SuperFieldAccess target = (SuperFieldAccess) targetNode;
return new StoreFieldInstructionImpl(
node,
source,
new EclipseSuperFieldAccess(target, eclipseVariableQuery),
eclipseVariableQuery);
}
if(targetNode instanceof QualifiedName) {
QualifiedName target = (QualifiedName) targetNode;
IBinding binding = target.resolveBinding();
if(binding instanceof IVariableBinding) {
IVariableBinding vb = (IVariableBinding) binding;
if(vb.isField()) {
return new StoreFieldInstructionImpl(
node,
source,
new EclipseBrokenFieldAccess(target, eclipseVariableQuery),
eclipseVariableQuery);
}
}
}
if(targetNode instanceof SimpleName) {
SimpleName target = (SimpleName) targetNode;
IBinding binding = target.resolveBinding();
if(binding instanceof IVariableBinding) {
IVariableBinding vb = (IVariableBinding) binding;
if(vb.isField()) {
// implicit field access on this
return new StoreFieldInstructionImpl(