@Override
	protected Pointer getThisPointer(AbstractMsType type)
			throws CancelledException, PdbException {
		RecordNumber ptrRecord = ((AbstractMemberFunctionMsType) type).getThisPointerRecordNumber();
		if (ptrRecord == null) {
			return null;
		}
		AbstractMsType mType = applicator.getTypeRecord(ptrRecord);
		if (mType instanceof PrimitiveMsType primitive && primitive.isNoType()) {
			return null;
		}
		if (mType instanceof AbstractPointerMsType msPtr) {
			predefineClass(msPtr.getUnderlyingRecordNumber());
		}
		applicator.getPdbApplicatorMetrics().witnessMemberFunctionThisPointer(mType);
		DataType dt = applicator.getDataType(ptrRecord);
		if (dt instanceof Pointer ptr) {
			return ptr;
		}
		return null;
	}
Constructor for the applicator that applies {@link AbstractMemberFunctionMsType},
transforming it into a Ghidra {@link DataType}
@param applicator {@link DefaultPdbApplicator} for which this class is working
@throws IllegalArgumentException Upon type mismatch
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/MemberFunctionTypeApplier.java