package x10.types.constraints.xnative;
import java.util.ArrayList;
import java.util.List;
import polyglot.types.FieldDef;
import polyglot.types.MemberDef;
import polyglot.types.MethodDef;
import x10.constraint.XFormula;
import x10.constraint.XTerm;
import x10.constraint.xnative.XNativeFormula;
import x10.constraint.xnative.XNativeTerm;
import x10.types.constraints.CAtom;
/**
* An atomic formula built from a property field (this has an associated nullary
* method) or from a method def.
* The CAtom knows about the MemberDef it is built form. X10 type information
* about the CAtom can be obtained from this MemberDef.
* @author vj
*
*/
public class CNativeAtom extends XNativeFormula<MemberDef> implements CAtom {
private static final long serialVersionUID = -1734428949188126121L;
public CNativeAtom(MethodDef op, MethodDef opAsExpr, XTerm... args) {
super(op, opAsExpr, true, args);
}
public CNativeAtom(FieldDef op, FieldDef opAsExpr, XTerm... args) {
super(op, opAsExpr, true, args);
}
/**
* Return the MemberDef that this CAtom is built on.
* @return
*/
@Override
public MemberDef def() {return op;}
@Override
public MemberDef exprDef() {return asExprOp;}
}