Issue #23605: os.walk() doesn't need to call entry.is_symlink() if followlinks
is True
diff --git a/Lib/os.py b/Lib/os.py
index 8e325e3..a9a57e0 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -374,7 +374,10 @@
 
             if is_dir:
                 dirs.append(entry.name)
+            else:
+                nondirs.append(entry.name)
 
+            if is_dir and not followlinks:
                 try:
                     if entry.is_symlink():
                         symlinks.add(entry.name)
@@ -383,8 +386,6 @@
                     # entry is not a symbolik link, same behaviour than
                     # os.path.islink().
                     pass
-            else:
-                nondirs.append(entry.name)
     except OSError as error:
         # scandir() or iterating into scandir() iterator raised an OSError
         if onerror is not None: