The object at dereference depth 1 is being used before it was constructed/allocated. Please make sure that the object is allocated before using it

calc_sequence.sv

class calc_sequence extends uvm_sequence#(calc_trans);
	`uvm_object_utils(calc_sequence)

  function new(string name = "calc_sequence");
		super.new(name);
	endfunction: new

	task body();
		calc_trans req;
		
		repeat(2) begin
		req = calc_trans::type_id::create("req");
                start_item(req);   
		assert(req.randomize());
		finish_item(req);
		end
	endtask: body
endclass: calc_sequence

calc_sequencer.sv
typedef uvm_sequencer#(calc_trans) calc_sequencer;