@Value.Lazy
	String typeImmutableEnclosingSimpleName() {
		DeclaringType declaringType = protoclass().enclosingOf().get();
		String enclosingSimpleName = declaringType.element().getSimpleName().toString();
		String enclosingRawName = names().rawFromAbstract(enclosingSimpleName);
		// Here we check for having both enclosing and value
		// if we had protoclass it would be kind().isEnclosing() && kind().isValue()
		Naming naming = declaringType.isImmutable()
				? names().namings.typeImmutable
				: names().namings.typeImmutableEnclosing;

		return naming.apply(enclosingRawName);
	}
Walks to the enclosing type's simple names and applies naming convention.
This shortcut/fix shows deficiency of model (it's probably more complicated than needed).
@return enclosing immutable name
value-processor/src/org/immutables/value/processor/meta/Constitution.java