In reply to chr_sue:
The definition of req_kind is:
class my_transaction extends uvm_sequence_item;
typedef enum {REQ, NO_REQ} req_kind_e;
rand req_kind_e req_kind;
...
...
...
and the class my_transaction is type forwarded in the file where the compilation error is present:
typedef class my_transaction;
The code block in question is a sequence in a sequence library where m_request_fifo is the port used in the slave sequencer to retrieve the sequence.