{
    "Function": "_upgradeBeaconToAndCall",
    "File": "contracts/openzeppelin-solidity/contracts/proxy/ERC1967/ERC1967Upgrade.sol",
    "Parent Contracts": [],
    "High-Level Calls": [
        "IBeacon",
        "Address"
    ],
    "Internal Calls": [
        "_setBeacon"
    ],
    "Library Calls": [
        "functionDelegateCall"
    ],
    "Low-Level Calls": [],
    "Code": "function _upgradeBeaconToAndCall(\n        address newBeacon,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        _setBeacon(newBeacon);\n        emit BeaconUpgraded(newBeacon);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n        }\n    }"
}