<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/148675>148675</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [flang] Unexpected compile time failure when resolving a reference to a defined assignment `ASSIGNMENT(=)`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang:frontend
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          DanielCChen
      </td>
    </tr>
</table>

<pre>
    Consider the following code:
```
module m
  type dt
    integer i
  contains
 generic :: ASSIGNMENT(=) => assign
    procedure, pass :: assign => myassign
    generic :: ASSIGNMENT(=) => otherassign               !! If commented out, it compiles successfully
    procedure, pass :: otherassign => myassign            !! If commented out, it compiles successfully
  end type
contains
  subroutine myassign(x,y)
    class(dt), intent(out) :: x
 integer, intent(in) :: y
    x%i = y + 1
  end subroutine

 subroutine sub
    type(dt) xdt
    xdt = 5
  end subroutine
end module
```

Flang complains:
```
error: Semantic errors in assign08.f
./assign08.f:19:5: error: No intrinsic or user-defined ASSIGNMENT(=) matches operand types TYPE(dt) and INTEGER(4)
      xdt = 5
 ^^^^^^^
```


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVM9vszgQ_WuGy6iRMZDCgQNfmnzqYavVtnvYozFD8MrYyDb9kv9-ZULa9Ie0e9gIiTDyvHl-79nCe3U0RDUUP6B4SMQcBuvqB2EU6d1uIJO0tjvXO2u86shhGAh7q7X9pcwRpe0IsgZYA1u2PqwZbTdrwhFYgxjOE2EXlv-IygQ6kkO1fEtrglDGx48jGXJKYoTLGmyenx9_Pv22f3oBXkL2ALzC-Mr2eOG8Ak7OSupmR8B3OAnvrwCXVdee8fyh678Ps2Egt2J9_AFPgaf42KO040gmUId2DpGHCrE2KU0e_Swled_PWp__jfPtsE_E_4_JZLrFDmDNrfLo59bZOShD7zrx8gR8dwZeraSlFt4DL7sQa3GUCWQC8HIZXV33cIrrV5s_LFPmZtVVihPwQsW94hmB_8D0jeg7qZgu1tyy9HO79i_bWUnh6S1mpy4soMX3cLFwCemn5AJrDloswR4nvQj0Jd3knHVxD880ChOUxKXiUZk1dKzc9MCaDfDDTSFr0gqypoitbxhPNgrklPFKonU4e3J3HfXKUPdtLEcR5EAe7UROrH56fPnr9_2bDLH8-PSy_7n_A3iZv1v4SRco9t88XwRJujrrqqwSCdXpfcGLlG-3WTLUbJtRWqQyz0nyvi9b0TPRMbntyyJr2yxRNWe8YPdpnt6znGcbqqqibHNR8opamaWQMxqF0hutX8eNdcdEeT9Tnebl9r5ItGhJ--Vq4ryPvkDW9M7GRHXAebywXB1779r56CFnWvng39GCCnq52i7NxQP-aeg0kYwnZj0nGNRI2AulZ0f4ayCDjrzVr_F-E-ioJ0dGEgaLAq_WXHyNZw9hy74xCrYsmZ2uhxCmJUT8APxwVGGY2420I_BDpLm-7iZn_yYZgB8WBTzwwyrCa83_CQAA___YL7SB">