! { dg-do compile }

! PR fortran/37429
! Checks for assignments from type-bound functions.

MODULE touching
  IMPLICIT NONE

  TYPE :: EqnSys33
  CONTAINS
    PROCEDURE, NOPASS :: solve1
    PROCEDURE, NOPASS :: solve2
    PROCEDURE, NOPASS :: solve3
  END TYPE EqnSys33

CONTAINS

  FUNCTION solve1 ()
    IMPLICIT NONE
    REAL :: solve1(3)
    solve1 = 0.0
  END FUNCTION solve1

  CHARACTER(len=5) FUNCTION solve2 ()
    IMPLICIT NONE
    solve2 = "hello"
  END FUNCTION solve2

  REAL FUNCTION solve3 ()
    IMPLICIT NONE
    solve3 = 4.2
  END FUNCTION solve3

  SUBROUTINE fill_gap ()
    IMPLICIT NONE
    TYPE(EqnSys33) :: sys
    REAL :: res
    REAL :: resArr(3), resSmall(2)

    res = sys%solve1 () ! { dg-error "Incompatible rank" }
    res = sys%solve2 () ! { dg-error "Cannot convert" }
    resSmall = sys%solve1 () ! { dg-error "Different shape" }

    res = sys%solve3 ()
    resArr = sys%solve1 ()
  END SUBROUTINE fill_gap

END MODULE touching
