summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/env.py5
-rw-r--r--tests/test_arcs.py3
2 files changed, 7 insertions, 1 deletions
diff --git a/coverage/env.py b/coverage/env.py
index 83b4be65..03f76399 100644
--- a/coverage/env.py
+++ b/coverage/env.py
@@ -31,9 +31,12 @@ class PYBEHAVIOR(object):
# Is "if __debug__" optimized away?
optimize_if_debug = (not PYPY)
- # If "if not __debug__" optimized away?
+ # Is "if not __debug__" optimized away?
optimize_if_not_debug = (not PYPY) and (PYVERSION >= (3, 7, 0, 'alpha', 4))
+ # Is "if not __debug__" optimized away even better?
+ optimize_if_not_debug2 = (not PYPY) and (PYVERSION >= (3, 8, 0, 'beta', 1))
+
# Do we have yield-from?
yield_from = (PYVERSION >= (3, 3))
diff --git a/tests/test_arcs.py b/tests/test_arcs.py
index cbbac64a..638478ab 100644
--- a/tests/test_arcs.py
+++ b/tests/test_arcs.py
@@ -1178,6 +1178,9 @@ class OptimizedIfTest(CoverageTest):
# Before 3.7, no Python optimized away "if not __debug__:"
if not env.PYBEHAVIOR.optimize_if_debug:
self.skipTest("PyPy doesn't optimize away 'if __debug__:'")
+ elif env.PYBEHAVIOR.optimize_if_not_debug2:
+ arcz = ".1 12 24 41 26 61 1."
+ arcz_missing = ""
elif env.PYBEHAVIOR.optimize_if_not_debug:
arcz = ".1 12 23 31 26 61 1."
arcz_missing = ""