bpo-35733: Make isinstance(ast.Constant(boolean), ast.Num) be false. (GH-11547)

diff --git a/Lib/ast.py b/Lib/ast.py
index 4c8c779..03b8a1b 100644
--- a/Lib/ast.py
+++ b/Lib/ast.py
@@ -346,7 +346,10 @@
             except AttributeError:
                 return False
             else:
-                return isinstance(value, _const_types[cls])
+                return (
+                    isinstance(value, _const_types[cls]) and
+                    not isinstance(value, _const_types_not.get(cls, ()))
+                )
         return type.__instancecheck__(cls, inst)
 
 def _new(cls, *args, **kwargs):
@@ -384,3 +387,6 @@
     NameConstant: (type(None), bool),
     Ellipsis: (type(...),),
 }
+_const_types_not = {
+    Num: (bool,),
+}