The following code (with comments) illustrates the issue. Assigning to an INTEGER, a CHARACTER is permitted, and generates a warning in the executable code, but no warning in the variable declarations. I found this originally in my TYPE, and extended the 'missing warning' through a few more examples here.
type:: abcd
sequence
integer:: defg=' ' ! no warnings
end type
type (abcd):: wxyz
integer:: i='B' ! no warnings
i=' ' ! warning 362 during compile
write(*,90000)wxyz%defg ! prints '20202020'
90000 format(z8.8)
end