Compile this simple contract returns an error

When I compile the contract with 0.8.9 solidity compiler version, return this error.

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@opengsn/contracts/src/BaseRelayRecipient.sol";



contract Test is

    Ownable,
    ERC721Holder,
    BaseRelayRecipient

{

    string public override versionRecipient = "2.2.0";

    constructor (
        address forwarder
    ) {
        trustedForwarder = forwarder;
    }


    function launchSale(uint256 price) external returns (bool){

        return true;
    }



    function _msgSender() internal view override(Context, BaseRelayRecipient) returns (address) {
        return BaseRelayRecipient._msgSender();
    }

    function _msgData() internal view override(Context, BaseRelayRecipient) returns (bytes calldata) {
        return BaseRelayRecipient._msgData();
    }

}
Compiling 2 files with 0.8.9
TypeError: Expression has to be an lvalue.
  --> contracts/ArtArmySeller.sol:68:9:
   |
68 |         trustedForwarder = forwarder;
   |         ^^^^^^^^^^^^^^^^


TypeError: Type address is not implicitly convertible to expected type function () view returns (address).
  --> contracts/ArtArmySeller.sol:68:28:
   |
68 |         trustedForwarder = forwarder;
   |                            ^^^^^^^^^


Error HH600: Compilation failed

Use
_setTrustedForwarder(forwarder)

To set it

1 Like