Consider this xetex-lastnodetype.tex
A\showthe\lastnodetype %% 0 <-> char node
\begingroup
\font\x="[texgyrepagella-regular.otf]"\relax
\x
A\showthe\lastnodetype %% 9 <-> whatsit node???
\endgroup
A\showthe\lastnodetype %% 0 <-> char node
\bye
on running xetex xetex-lastnodetype, following console output results
xetex xetex-lastnodetype
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xetex)
restricted \write18 enabled.
entering extended mode
(./xetex-lastnodetype.tex
> 0.
l.2 A\showthe\lastnodetype
%% 0 <-> char node
?
> 9.
l.9 A\showthe\lastnodetype
%% 9 <-> whatsit node???
?
> 0.
l.13 A\showthe\lastnodetype
%% 0 <-> char node
?
[1] )
Output written on xetex-lastnodetype.pdf (1 page).
Transcript written on xetex-lastnodetype.log.
The second \lastnodetype is 9, which is unexpected.
Anonymous
A
char_nodecan only hold characters from 8-bit fonts; text from native fonts such as OpenType fonts are stored in either anative_word_nodeor aglyph_node, which are subtypes of thewhatsit_node, distinguished by subtypes of 40 and 42, respectively. One would need a\lastnodesubtypeto identify those. That might be a desirable extension.