{
    "contracts":
    {
        "A":
        {
            "C":
            {
                "evm":
                {
                    "bytecode":
                    {
                        "generatedSources": [],
                        "object": "<BYTECODE REMOVED>"
                    },
                    "deployedBytecode":
                    {
                        "object": "<BYTECODE REMOVED>"
                    }
                },
                "ir": "
/// @use-src 0:\"A\"
object \"C_3\" {
    code {
        /// @src 0:79:92  \"contract C {}\"
        mstore(64, memoryguard(128))
        if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }

        constructor_C_3()

        let _1 := allocate_unbounded()
        codecopy(_1, dataoffset(\"C_3_deployed\"), datasize(\"C_3_deployed\"))

        return(_1, datasize(\"C_3_deployed\"))

        function allocate_unbounded() -> memPtr {
            memPtr := mload(64)
        }

        function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
            revert(0, 0)
        }

        /// @src 0:79:92  \"contract C {}\"
        function constructor_C_3() {

            /// @src 0:79:92  \"contract C {}\"

        }
        /// @src 0:79:92  \"contract C {}\"

    }
    /// @use-src 0:\"A\"
    object \"C_3_deployed\" {
        code {
            /// @src 0:79:92  \"contract C {}\"
            mstore(64, memoryguard(128))

            revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74()

            function shift_right_224_unsigned(value) -> newValue {
                newValue :=

                shr(224, value)

            }

            function allocate_unbounded() -> memPtr {
                memPtr := mload(64)
            }

            function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
                revert(0, 0)
            }

        }

        data \".metadata\" hex\"<BYTECODE REMOVED>\"
    }

}

"
            },
            "D":
            {
                "evm":
                {
                    "bytecode":
                    {
                        "generatedSources": [],
                        "object": "<BYTECODE REMOVED>"
                    },
                    "deployedBytecode":
                    {
                        "object": "<BYTECODE REMOVED>"
                    }
                },
                "ir": "
/// @use-src 0:\"A\"
object \"D_16\" {
    code {
        /// @src 0:93:146  \"contract D { function f() public { C c = new C(); } }\"
        mstore(64, memoryguard(128))
        if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }

        constructor_D_16()

        let _1 := allocate_unbounded()
        codecopy(_1, dataoffset(\"D_16_deployed\"), datasize(\"D_16_deployed\"))

        return(_1, datasize(\"D_16_deployed\"))

        function allocate_unbounded() -> memPtr {
            memPtr := mload(64)
        }

        function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
            revert(0, 0)
        }

        /// @src 0:93:146  \"contract D { function f() public { C c = new C(); } }\"
        function constructor_D_16() {

            /// @src 0:93:146  \"contract D { function f() public { C c = new C(); } }\"

        }
        /// @src 0:93:146  \"contract D { function f() public { C c = new C(); } }\"

    }
    /// @use-src 0:\"A\"
    object \"D_16_deployed\" {
        code {
            /// @src 0:93:146  \"contract D { function f() public { C c = new C(); } }\"
            mstore(64, memoryguard(128))

            if iszero(lt(calldatasize(), 4))
            {
                let selector := shift_right_224_unsigned(calldataload(0))
                switch selector

                case 0x26121ff0
                {
                    // f()

                    external_fun_f_15()
                }

                default {}
            }

            revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74()

            function shift_right_224_unsigned(value) -> newValue {
                newValue :=

                shr(224, value)

            }

            function allocate_unbounded() -> memPtr {
                memPtr := mload(64)
            }

            function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
                revert(0, 0)
            }

            function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {
                revert(0, 0)
            }

            function abi_decode_tuple_(headStart, dataEnd)   {
                if slt(sub(dataEnd, headStart), 0) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }

            }

            function abi_encode_tuple__to__fromStack(headStart ) -> tail {
                tail := add(headStart, 0)

            }

            function external_fun_f_15() {

                if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
                abi_decode_tuple_(4, calldatasize())
                fun_f_15()
                let memPos := allocate_unbounded()
                let memEnd := abi_encode_tuple__to__fromStack(memPos  )
                return(memPos, sub(memEnd, memPos))

            }

            function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
                revert(0, 0)
            }

            function panic_error_0x41() {
                mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
                mstore(4, 0x41)
                revert(0, 0x24)
            }

            function revert_forward_1() {
                let pos := allocate_unbounded()
                returndatacopy(pos, 0, returndatasize())
                revert(pos, returndatasize())
            }

            /// @ast-id 15
            /// @src 0:106:144  \"function f() public { C c = new C(); }\"
            function fun_f_15() {

                /// @src 0:134:141  \"new C()\"
                let _1 := allocate_unbounded()
                let _2 := add(_1, datasize(\"C_3\"))
                if or(gt(_2, 0xffffffffffffffff), lt(_2, _1)) { panic_error_0x41() }
                datacopy(_1, dataoffset(\"C_3\"), datasize(\"C_3\"))
                _2 := abi_encode_tuple__to__fromStack(_2)

                let expr_12_address := create(0, _1, sub(_2, _1))

                if iszero(expr_12_address) { revert_forward_1() }

                /// @src 0:128:141  \"C c = new C()\"
                let var_c_8_address := expr_12_address

            }
            /// @src 0:93:146  \"contract D { function f() public { C c = new C(); } }\"

        }

        /// @use-src 0:\"A\"
        object \"C_3\" {
            code {
                /// @src 0:79:92  \"contract C {}\"
                mstore(64, memoryguard(128))
                if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }

                constructor_C_3()

                let _1 := allocate_unbounded()
                codecopy(_1, dataoffset(\"C_3_deployed\"), datasize(\"C_3_deployed\"))

                return(_1, datasize(\"C_3_deployed\"))

                function allocate_unbounded() -> memPtr {
                    memPtr := mload(64)
                }

                function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
                    revert(0, 0)
                }

                /// @src 0:79:92  \"contract C {}\"
                function constructor_C_3() {

                    /// @src 0:79:92  \"contract C {}\"

                }
                /// @src 0:79:92  \"contract C {}\"

            }
            /// @use-src 0:\"A\"
            object \"C_3_deployed\" {
                code {
                    /// @src 0:79:92  \"contract C {}\"
                    mstore(64, memoryguard(128))

                    revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74()

                    function shift_right_224_unsigned(value) -> newValue {
                        newValue :=

                        shr(224, value)

                    }

                    function allocate_unbounded() -> memPtr {
                        memPtr := mload(64)
                    }

                    function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
                        revert(0, 0)
                    }

                }

                data \".metadata\" hex\"<BYTECODE REMOVED>\"
            }

        }

        data \".metadata\" hex\"<BYTECODE REMOVED>\"
    }

}

"
            }
        }
    },
    "errors":
    [
        {
            "component": "general",
            "errorCode": "2072",
            "formattedMessage": "Warning: Unused local variable.
 --> A:2:93:
  |
2 | pragma solidity >=0.0; pragma abicoder v2; contract C {} contract D { function f() public { C c = new C(); } }
  |                                                                                             ^^^

",
            "message": "Unused local variable.",
            "severity": "warning",
            "sourceLocation":
            {
                "end": 131,
                "file": "A",
                "start": 128
            },
            "type": "Warning"
        }
    ],
    "sources":
    {
        "A":
        {
            "id": 0
        }
    }
}