I am writing my contracts in solidity version defined as ^0.8.0. I want to use Uniswap router interface, which is using >=0.7.5. Why is the compilation failing even though a compiler version ^0.8.0 should fulfill both requirements?
Thank you
^ or >= accept all the newer minor changes, but the major update will fail this condition:
^0.8.0 would accept 0.8.1, 0.8.2, ..., 0.8.x, but 0.9.0 will not be accepted.
>=0.7.5 will accept all 0.7.x versions, but 0.8.0 will fail.
Look up Semantic Versioning (Semver).