if (!bindings.hasKey(freeVar)) continue;
	public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) {		//make this remap from formal positions to arrayIndices		IntMap entryBindings = new IntMap();		for (int i=0, len=freeVars.length; i < len; i++) {			int freeVar = freeVars[i];			//int formalIndex = bindings.get(freeVar);			entryBindings.put(freeVar, i);		}		entryBindings.copyContext(bindings);		//System.out.println(this + " bindings: " + entryBindings);				World world = inAspect.getWorld();				Pointcut concreteEntry;				CrosscuttingMembers xcut = bindings.getConcreteAspect().crosscuttingMembers;				Collection previousCflowEntries = xcut.getCflowEntries();				entryBindings.pushEnclosingDefinition(CFLOW_MARKER);		try {			concreteEntry = entry.concretize(inAspect, entryBindings);		} finally {			entryBindings.popEnclosingDefinitition();		}		List innerCflowEntries = new ArrayList(xcut.getCflowEntries());		innerCflowEntries.removeAll(previousCflowEntries);				ResolvedMember cflowField = new ResolvedMember(			Member.FIELD, inAspect, Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL,					NameMangler.cflowStack(xcut), 					TypeX.forName(NameMangler.CFLOW_STACK_TYPE).getSignature());							// add field and initializer to inAspect		//XXX and then that info above needs to be mapped down here to help with		//XXX getting the exposed state right		bindings.getConcreteAspect().crosscuttingMembers.addConcreteShadowMunger(				Advice.makeCflowEntry(world, concreteEntry, isBelow, cflowField, freeVars.length, innerCflowEntries));				bindings.getConcreteAspect().crosscuttingMembers.addTypeMunger(			world.makeCflowStackFieldAdder(cflowField));								List slots = new ArrayList();		for (int i=0, len=freeVars.length; i < len; i++) {			int freeVar = freeVars[i];			int formalIndex = bindings.get(freeVar);			ResolvedTypeX formalType =				bindings.getAdviceSignature().getParameterTypes()[formalIndex].resolve(world);						ConcreteCflowPointcut.Slot slot = 				new ConcreteCflowPointcut.Slot(formalIndex, formalType, i);			slots.add(slot);		}				return new ConcreteCflowPointcut(cflowField, slots);	}