boolean transformIntoStructureContainer() {

		if (parent == null) {
			throw new AssertException();
		}

		if (getDepth() >= MAX_CONSTRUCTION_DEPTH) {
			Msg.error(this, "PDB composite reconstruction exceeded maximum allowed depth: " +
				getOutermostDataTypeName());
			return false;
		}

		DefaultCompositeMember memberCopy = new DefaultCompositeMember(this);

		CategoryPath tempCategoryPath = parent.getDataType().getCategoryPath();
		String tempName = allocateTemporaryContainerName("struct");

		Structure nestedStructure =
			new StructureDataType(tempCategoryPath, tempName, 0, dataTypeManager);

		memberName = tempName;
		memberOffset = 0;
		memberDataType = nestedStructure;
		memberIsZeroLengthArray = false;
		memberDataTypeName = null; // signifies a container
		initializeContainer();

		if (parent != null) {
			parent.memberChanged(memberCopy.memberName, this);
		}

		return addStructureMember(memberCopy);
	}
Attempt to add a child member to this composite hierarchy
@param child PDB data-type member record
@param monitor task monitor
@return true if child data type resolved and it was successfully added to composite hierarchy,
false if unable to resolve member's data-type or other error occurred.
NOTE: there may be complex hierarchies not yet handled.
@throws CancelledException if operation cancelled
@throws DataTypeDependencyException if child's datatype can not be resolved.
It may be possible to skip and continue with next child.
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/DefaultCompositeMember.java