contract B {
    uint immutable x = 3;

    function readX() internal virtual returns(uint) {
        return x;
    }
}

contract C is B {
    constructor() {
        B.readX;
    }

    function readX() internal pure override returns(uint) {
        return 3;
    }
}
// ----