'test checking constant conditions'

# __pychecker__ = ''

def func1(x):
    'should not produce a warning'
    if 1:
        pass
    while 1:
        print x
        break
    assert x, 'test'
    return 0

def func2(x):
    'should produce a warning'
    __pychecker__ = 'constant1'
    if 1:
        pass
    while 1:
        print x
        break
    return 0

def func3(x):
    'should produce a warning'
    if 21:
        return 1
    if 31:
        return 2
    assert(x, 'test')
    assert(5, 'test')
    assert 5, 'test'

    if 'str':
        return 3

    return 4

def func4(x):
    'should not produce a warning'
    if x == 204 or x == 201 or 200 <= x < 300:
        x = 0
    if x == 1:
        pass
    while x == 'str':
        print x
        break
    return 0

@@ -755,28 +755,150 @@
 %0A        break%0A    return 0%0A
+%0Adef func5(need_quotes, text):%0A    'should not produce a warning'%0A    return (need_quotes) and ('%22%25s%22' %25 text) or (text)%0A%0A

Fix a problem reported by Greg Ward and pointed out by John Machin when doing: