private ChildInfo childRecord(NewVirtualFileSystem fs, FakeVirtualFile child, FileAttributes attributes, boolean canonicalize) {
    var t = System.nanoTime();
    String name = canonicalize ? fs.getCanonicallyCasedName(child) : child.getName();
    boolean isEmptyDir = attributes.isDirectory() && !fs.hasChildren(child);
    String symlinkTarget = attributes.isSymLink() ? fs.resolveSymLink(child) : null;
    myIoTime.addAndGet(System.nanoTime() - t);
    int nameId = myPersistencePeer.getNameId(name);
    return new ChildInfoImpl(nameId, attributes, isEmptyDir ? ChildInfo.EMPTY_ARRAY : null, symlinkTarget);
  }
private ChildInfo childRecord(NewVirtualFileSystem fs, FakeVirtualFile child, FileAttributes attributes, boolean canonicalize)