1! RUN: %S/test_errors.sh %s %t %f18 2! Test 15.4.2.2 constraints and restrictions for calls to implicit 3! interfaces 4 5subroutine s(assumedRank, coarray, class, classStar, typeStar) 6 type :: t 7 end type 8 9 real :: assumedRank(..), coarray[*] 10 class(t) :: class 11 class(*) :: classStar 12 type(*) :: typeStar 13 14 type :: pdt(len) 15 integer, len :: len 16 end type 17 type(pdt(1)) :: pdtx 18 19 !ERROR: Invalid specification expression: reference to impure function 'implicit01' 20 real :: array(implicit01()) ! 15.4.2.2(2) 21 !ERROR: Keyword 'keyword=' may not appear in a reference to a procedure with an implicit interface 22 call implicit10(1, 2, keyword=3) ! 15.4.2.2(1) 23 !ERROR: Assumed rank argument requires an explicit interface 24 call implicit11(assumedRank) ! 15.4.2.2(3)(c) 25 !ERROR: Coarray argument requires an explicit interface 26 call implicit12(coarray) ! 15.4.2.2(3)(d) 27 !ERROR: Parameterized derived type argument requires an explicit interface 28 call implicit13(pdtx) ! 15.4.2.2(3)(e) 29 !ERROR: Polymorphic argument requires an explicit interface 30 call implicit14(class) ! 15.4.2.2(3)(f) 31 !ERROR: Polymorphic argument requires an explicit interface 32 call implicit15(classStar) ! 15.4.2.2(3)(f) 33 !ERROR: Assumed type argument requires an explicit interface 34 call implicit16(typeStar) ! 15.4.2.2(3)(f) 35 !ERROR: TYPE(*) dummy argument may only be used as an actual argument 36 if (typeStar) then 37 endif 38 !ERROR: TYPE(*) dummy argument may only be used as an actual argument 39 classStar = typeStar ! C710 40 !ERROR: TYPE(*) dummy argument may only be used as an actual argument 41 typeStar = classStar ! C710 42end subroutine 43 44