I've searched the forums and am a little surprised how this has not been brought up.
I never questioned this before, until now. When you pick events, Warcraft 3 has a difference between "upgrade" and "research". See here:
And in Jass:

JASS:
function InitTrig_Untitled_Trigger takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterPlayerUnitEventSimple(t, Player(0), EVENT_PLAYER_UNIT_UPGRADE_START)
call TriggerRegisterPlayerUnitEventSimple(t, Player(0), EVENT_PLAYER_UNIT_UPGRADE_CANCEL)
call TriggerRegisterPlayerUnitEventSimple(t, Player(0), EVENT_PLAYER_UNIT_UPGRADE_FINISH)
call TriggerRegisterPlayerUnitEventSimple(t, Player(0), EVENT_PLAYER_UNIT_RESEARCH_START)
call TriggerRegisterPlayerUnitEventSimple(t, Player(0), EVENT_PLAYER_UNIT_RESEARCH_CANCEL)
call TriggerRegisterPlayerUnitEventSimple(t, Player(0), EVENT_PLAYER_UNIT_RESEARCH_FINISH)
set t = null
endfunction
Research? Upgrade? Considering how the interface seems to use the words interchangeably (Humans say
Research Complete while Night Elves say
Upgrade Complete), I'd assume that these two types of events are the same thing. Unless one set of them is obsolete?