public void visit_astore(final Instruction inst) {
		// When we store an object to a local variable, we need to keep
		// track of whether or not the object being stored (and hence the
		// variable into which it is stored) is preexistent.
		final LocalVariable var = (LocalVariable) inst.operand();
		final HashSet set = preexistsAtDepth(0);

		if (set == null) {
			InstructionStack.pre("      " + var + " does not preexist");
			this.currPreexists.put(var, null);

		} else if (set.isEmpty()) {
			InstructionStack.pre("      " + var + " preexists");
			this.currPreexists.put(var, new HashSet());

		} else {
			// This store superceeds anything else that was already in this
			// local, so don't merge the sets.
			InstructionStack.pre("      " + var + " preexists with types");
			this.currPreexists.put(var, set.clone());
		}

		pop();
	}