@Nonnull
	default String getSimpleName() {
		// Check for inner name
		String innerName = getInnerName();
		if (innerName != null) return innerName;

		// Substring from outer class prefix
		String outerDeclaringClass = getOuterDeclaringClassName();
		String outerName = getOuterClassName();
		if (outerName != null) {
			int outerDeclaringLength = outerDeclaringClass.length();
			int lastIndex = 0;
			int endIndex = Math.min(outerDeclaringLength, outerName.length());
			for (; lastIndex < endIndex; lastIndex++) {
				if (outerDeclaringClass.charAt(lastIndex) != outerName.charAt(lastIndex)) break;
			}

			// Edge case handling with outer name
			if (lastIndex == 0)
				return outerName;
			else if (outerName.startsWith("$", lastIndex))
				lastIndex++;
			return outerName.substring(lastIndex);
		}

		// Class entry is for anonymous class.
		String innerClassName = getInnerClassName();
		return "Anonymous '" + innerClassName.substring(innerClassName.lastIndexOf('$') + 1) + "'";
	}
@return Either {@link #getInnerName()} if not {@code null},
otherwise the last "part" (after last $ or /) of {@link #getOuterClassName()}.
recaf-core/src/main/java/software/coley/recaf/info/InnerClassInfo.java