Commit c0987224 authored by's avatar
Browse files

Remove bogus assertion in getCallMethod

With my as-yet-uncommitted changes to the demand analyzer, code got
 generated for some programs that caused this assertion to fail.  The
 transformation I was doing was correct; it was the assertion that
 wasn't. So, the assertion is removed.
 This is actually Simon PJ's patch rather than mine, but I noticed that
 it wasn't checked in and it seems completely safe to do so.
parent 06435c51
......@@ -594,7 +594,13 @@ getCallMethod this_pkg name (LFThunk _ _ updatable std_form_info is_fun) n_args
if we enter the same thunk multiple times, so the optimisation
of jumping directly to the entry code is still valid. --SDM
= ASSERT2( n_args == 0, ppr name ) EnterIt
= EnterIt
-- We used to have ASSERT( n_args == 0 ), but actually it is
-- possible for the optimiser to generate
-- let bot :: Int = error Int "urk"
-- in (bot `cast` unsafeCoerce Int (Int -> Int)) 3
-- This happens as a result of the case-of-error transformation
-- So the right thing to do is just to enter the thing
| otherwise -- Jump direct to code for single-entry thunks
= ASSERT( n_args == 0 )
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment