blob: 81d8162528ba7f85790458d05e3138e49aa746e8 [file] [log] [blame]
! { 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