state.setErroneousVar(btp.getFormalIndex());
	private Test findResidueNoEllipsis(Shadow shadow, ExposedState state, TypePattern[] patterns) {		int len = shadow.getArgCount();		//System.err.println("boudn to : " + len + ", " + patterns.length);		if (patterns.length != len) {			return Literal.FALSE;		}				Test ret = Literal.TRUE;				for (int i=0; i < len; i++) {			TypeX argType = shadow.getArgType(i);			TypePattern type = patterns[i];			if (!(type instanceof BindingTypePattern)) {				if (type.matchesInstanceof(shadow.getIWorld().resolve(argType)).alwaysTrue()) {					continue;				}			} else {			  BindingTypePattern btp = (BindingTypePattern)type;			  // Check if we have already bound something to this formal			  if (state.get(btp.getFormalIndex())!=null) {			  	ISourceLocation isl = getSourceLocation();				Message errorMessage = new Message(                    "Ambiguous binding of type "+type.getExactType().toString()+                    " using args(..) at this line.  Use one args(..) per matched join point,"+"" +                    " see secondary source location for location of extraneous args(..)",					shadow.getSourceLocation(),true,new ISourceLocation[]{getSourceLocation()});				shadow.getIWorld().getMessageHandler().handleMessage(errorMessage);			  }			}			ret = Test.makeAnd(ret,				exposeStateForVar(shadow.getArgVar(i), type, state,shadow.getIWorld()));		}				return ret;			}