void (@NotNull TextAttributesKey fallbackAttributeKey) { for (TextAttributesKey key = fallbackAttributeKey; key != null; key = key.myFallbackAttributeKey) { if (equals(key)) { throw new IllegalArgumentException("Can't use this fallback key: " + fallbackAttributeKey + ":" + " Cycle detected: " + StringUtil.join(JBIterable.generate(myFallbackAttributeKey, o -> o == this ? null : o.myFallbackAttributeKey), "->")); } } }