2020-05-12 02:38:53 +08:00
|
|
|
! RUN: %S/test_errors.sh %s %t %f18
|
2018-07-06 01:28:34 +08:00
|
|
|
subroutine test1
|
|
|
|
!ERROR: Generic interface 'foo' has both a function and a subroutine
|
|
|
|
interface foo
|
|
|
|
subroutine s1(x)
|
|
|
|
end subroutine
|
|
|
|
subroutine s2(x, y)
|
|
|
|
end subroutine
|
|
|
|
function f()
|
|
|
|
end function
|
|
|
|
end interface
|
|
|
|
end subroutine
|
|
|
|
|
|
|
|
subroutine test2
|
|
|
|
!ERROR: Generic interface 'foo' has both a function and a subroutine
|
|
|
|
interface foo
|
|
|
|
function f1(x)
|
|
|
|
end function
|
|
|
|
subroutine s()
|
|
|
|
end subroutine
|
|
|
|
function f2(x, y)
|
|
|
|
end function
|
|
|
|
end interface
|
|
|
|
end subroutine
|
|
|
|
|
|
|
|
module test3
|
|
|
|
!ERROR: Generic interface 'foo' has both a function and a subroutine
|
|
|
|
interface foo
|
|
|
|
module procedure s
|
|
|
|
module procedure f
|
|
|
|
end interface
|
|
|
|
contains
|
|
|
|
subroutine s(x)
|
|
|
|
end subroutine
|
|
|
|
function f()
|
|
|
|
end function
|
|
|
|
end module
|
|
|
|
|
|
|
|
subroutine test4
|
|
|
|
type foo
|
|
|
|
end type
|
|
|
|
!ERROR: Generic interface 'foo' may only contain functions due to derived type with same name
|
|
|
|
interface foo
|
|
|
|
subroutine s()
|
|
|
|
end subroutine
|
|
|
|
end interface
|
|
|
|
end subroutine
|
|
|
|
|
|
|
|
subroutine test5
|
|
|
|
interface foo
|
|
|
|
function f1()
|
|
|
|
end function
|
|
|
|
end interface
|
|
|
|
interface bar
|
|
|
|
subroutine s1()
|
|
|
|
end subroutine
|
|
|
|
subroutine s2(x)
|
|
|
|
end subroutine
|
|
|
|
end interface
|
|
|
|
!ERROR: Cannot call function 'foo' like a subroutine
|
|
|
|
call foo()
|
|
|
|
!ERROR: Cannot call subroutine 'bar' like a function
|
|
|
|
x = bar()
|
|
|
|
end subroutine
|