The way it looks now. The result through this path is sparse and the result through the else statement is always dense. Your case is handled, but it has a dense result. I'm not sure why it is done this way. But sparse results should always be returned.