Casting Rigidbody2D not detecting overlapping objects

In this scene I have the circle casting it’s collider shape to the left and returning a value if anything is hit. But as you can see it stops detecting the square as soon as it overlaps with it. How can I make it so it continues to detect objects even when they’re overlapping?
8420271--1113951--ezgif.com-gif-maker (1).gif

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    public float moveSpeed;
    // Start is called before the first frame update
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {
        Rigidbody2D rb = GetComponent<Rigidbody2D>();
        RaycastHit2D[] hitResults = new RaycastHit2D[1];
        int numberHit = rb.Cast(Vector3.left, hitResults, moveSpeed);

        if (numberHit > 0)
        {
            print("Hit " + numberHit + " colliders.");
            for (int i = 0; i < numberHit; ++i) print("Hit this: " + hitResults[i].collider.name);
        }

        if (numberHit == 0)
        {
            print("Nothing hit!");
        }
    }
}

Casting from inside a collider (even partially) generally won’t return a hit.

You would need to retain the position of something outside of the target collider and never move that into the collider.

You should probably be using any of the ‘Overlap’ methods in the Physics2d class such as overlap circle: Unity - Scripting API: Physics2D.OverlapCircle

I see! The thing I’m trying to do is have the circle detect a hit even when it’s perfectly adjacent to the square. Right now if I have the shapes snap to the grid so I can place them perfectly adjacent to each other, theres no hit’s detected even though they aren’t overlapping.