Var var = isThis ? shadow.getThisVar() : shadow.getTargetVar();
Var var = isThis ? shadow.getThisVar() : shadow.getTargetVar();  if (type instanceof BindingTypePattern) { BindingTypePattern btp = (BindingTypePattern)type;  if (state.get(btp.getFormalIndex())!=null) { ISourceLocation pcdSloc = getSourceLocation(); ISourceLocation shadowSloc = shadow.getSourceLocation(); Message errorMessage = new Message( "Cannot use "+(isThis?"this()":"target()")+" to match at this location and bind a formal to type '"+var.getType()+ "' - the formal is already bound to type '"+state.get(btp.getFormalIndex()).getType()+"'"+ ".  The secondary source location points to the problematic "+(isThis?"this()":"target()")+".", shadowSloc,true,new ISourceLocation[]{pcdSloc}); shadow.getIWorld().getMessageHandler().handleMessage(errorMessage); state.setErroneousVar(btp.getFormalIndex());  } }
	public Test findResidue(Shadow shadow, ExposedState state) {		if (!couldMatch(shadow)) return Literal.FALSE;				if (type == TypePattern.ANY) return Literal.TRUE;				Var var = isThis ? shadow.getThisVar() : shadow.getTargetVar();		return exposeStateForVar(var, type, state, shadow.getIWorld());	}