in core/src/main/java/com/jetbrains/sa/jdi/ReferenceTypeImpl.java [346:371]
public final List<ReferenceTypeImpl> nestedTypes() {
List<ReferenceTypeImpl> nestedTypes = (nestedTypesCache != null)? nestedTypesCache.get() : null;
if (nestedTypes == null) {
if (saKlass instanceof ArrayKlass) {
nestedTypes = Collections.emptyList();
} else {
ClassLoaderReferenceImpl cl = classLoader();
List<ReferenceTypeImpl> classes;
if (cl != null) {
classes = cl.visibleClasses();
} else {
classes = vm.bootstrapClasses();
}
nestedTypes = new ArrayList<ReferenceTypeImpl>();
for (ReferenceTypeImpl refType : classes) {
Symbol candidateName = refType.ref().getName();
if (((InstanceKlass) saKlass).isInnerOrLocalClassName(candidateName)) {
nestedTypes.add(refType);
}
}
}
nestedTypes = Collections.unmodifiableList(nestedTypes);
nestedTypesCache = new SoftReference<List<ReferenceTypeImpl>>(nestedTypes);
}
return nestedTypes;
}