question: private boolean shouldEmitTypedefByName ( JSType realType ) { return realType . isRecordType ( ) || realType . isTemplatizedType ( ) || realType . isFunctionType ( ) ; }
target:  Whether the typedef should be emitted by name or by the type it is defining. Because, we do not access the original type signature, the replacement is done for all references of the type (through the typedef or direct). Thus it is undesirable to always emit by name. For example: