contract D { uint x; modifier viewm(uint) { uint a = x; _; a; } modifier nonpayablem(uint) { x = 2; _; } } contract C is D { function f() viewm(0) pure public {} function g() nonpayablem(0) view public {} } // ---- // TypeError 2527: (154-162): Function declared as pure, but this expression (potentially) reads from the environment or state and thus requires "view". // TypeError 8961: (195-209): Function declared as view, but this expression (potentially) modifies the state and thus requires non-payable (the default) or payable.