Daniel Simpson’s review published on Letterboxd:
This review may contain spoilers.
This movie is odd. At once one of the darkest movies of the series really gearing up the brewing war of the wizarding world and ending with the death of a major character, yet also a wacky teen comedy full of relationship drama and school antics like classes and sports. It's like the filmmakers realized this was their last chance to really explore the regular aspects of teenager's lives and dove in headfirst leading to a film with a majorly inconsistent tone. It really shouldn't work, but it kind of does. Having spent so much time with these characters it is fun to watch them deal with regular problems. It's also nice to have the foot off the accelerator, especially after Order of the Phoenix blasted through its plot like a chainsaw through paper. At least to a point. The movie does feel a little long in its second half and generally has some odd pacing. The filmmakers actually added the scene where the Weasley home is attacked and not only is it completely superfluous, it also feels like a climax or at least a third act escalation when it reality it happens halfway through.
Digressions like this don't make a lot of sense to me (my guess is the filmmakers thought the movie needed more action) but there's also tons of good stuff here. The Malfoy subplot is surprisingly dignified after this series has spent so much time making the character a complete joke and I also rather like Jim Broadbent as Professor Slughorn. There's a lot of fun stuff in The Half-Blood Prince, but the movie doesn't come together fully either. So once again, we have a Harry Potter movie which is pretty good, but not much more than that.
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_855022e9-0a8b-4934-8528-1e69232a44dd" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-855022e9-0a8b-4934-8528-1e69232a44dd'; adUnit.className = 'pw-div -tile300x250 -alignleft -bottommargin'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'med_rect_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-855022e9-0a8b-4934-8528-1e69232a44dd'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-855022e9-0a8b-4934-8528-1e69232a44dd'));
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_3a98e831-8ff1-43c7-bc2c-440ad480bfcb" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-3a98e831-8ff1-43c7-bc2c-440ad480bfcb'; adUnit.className = 'pw-div'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'sky_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-3a98e831-8ff1-43c7-bc2c-440ad480bfcb'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-3a98e831-8ff1-43c7-bc2c-440ad480bfcb'));