SPOILER WARNING: This article contains major spoilers for "Spartan," the latest episode of Arrow.
John Diggle may be a Stewart after all. In "Spartan," the latest episode of Arrow, the show introduced viewers to Diggle's estranged stepfather: General Roy Stewart. Diggle actor David Ramsey has since confirmed that this is indeed a reference to Green Lantern, but it may also explain why Earth-90s Flash confused Dig for the Emerald Knight during the "Elseworlds" crossover.
When John Wesley Shipp's Barry Allen finally arrived on Earth-1 in "Elseworlds," he ran directly into Oliver Queen, Felicity Smoak, Barry Allen and Diggle. Once he oriented himself, he greeted Diggle by name. "Hello, John," Earth-90's Flash said, much to Diggle's surprise. "You're not wearing your ring! Things must be different here."
In his recognition of Diggle and the absence of a "ring," Earth-90's Flash clearly thought Diggle was John Stewart, who is a Green Lantern in DC Comics continuity. By introducing General Stewart, Arrow just offered an explanation as to why Earth-90's Flash mistook John Diggle for John Stewart.
After they met with General Stewart in "Spartan," Diggle made it clear to Oliver that he blamed his stepfather for his biological father's death. After all, they had served in the military together and his father had died during a mission Stewart ran. Though Stewart told him Diggle's father had stayed behind to save his troop, Diggle believed Stewart should have been the one to make the sacrifice play. So, when his mother married Stewart, Diggle felt nothing but resentment for the man.
As it turns out, Stewart wasn't exactly forthcoming about what happened on the mission. Felicity found the unredacted report from the mission, which revealed Diggle's father had died due to an act of negligence -- and he took two other men down with him. Stewart kept the truth from Diggle; he let Diggle hate him so that Diggle believed his father to be a hero. This led the two men to reconcile in a tender moment where Diggle realized how much Stewart really cared about him.
Of course, this probably wasn't the case on Earth-90. If General Stewart had told Diggle the truth about his father's death from the start, they may have had a better relationship, leading Diggle to take the name "Stewart." Thus, he would be known as John Stewart when he became a Green Lantern, which is why Earth-90's Barry Allen knows him as such when he arrives on Earth-1 during "Elseworlds."
Airing Mondays at 8 p.m. ET/PT on The CW, Arrow stars Stephen Amell as Oliver Queen, David Ramsey as John Diggle, Emily Bett Rickards as Felicity Smoak, Rick Gonzalez as Wild Dog, Juliana Harkavy as Black Canary, Colton Haynes as Arsenal, Kirk Acevedo as Diaz and Katie Cassidy as Black Siren.