blob: 60cad8ddcadb2e9b6a9d825cc7c8d1088c9060d4 [file] [log] [blame]
! { dg-do compile }
!
! PR 42188: [OOP] F03:C612. The leftmost part-name shall be the name of a data object
!
! Contributed by Janus Weil <janus@gcc.gnu.org>
module grid_module
implicit none
type grid
contains
procedure :: new_grid
procedure :: new_int
end type
contains
subroutine new_grid(this)
class(grid) :: this
end subroutine
integer function new_int(this)
class(grid) :: this
new_int = 42
end function
end module
module field_module
use grid_module
implicit none
type field
type(grid) :: mesh
end type
contains
type(field) function new_field()
end function
subroutine test
integer :: i
type(grid) :: g
g = new_field()%mesh ! { dg-error "cannot be a function reference" }
call new_field()%mesh%new_grid() ! { dg-error "Syntax error" }
i = new_field() % mesh%new_int() ! { dg-error "cannot be a function reference" }
end subroutine
end module