File: string_63.f90

package info (click to toggle)
lfortran 0.58.0-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 54,512 kB
  • sloc: cpp: 162,179; f90: 68,251; python: 17,476; ansic: 6,278; yacc: 2,334; sh: 1,317; fortran: 892; makefile: 33; javascript: 15
file content (26 lines) | stat: -rw-r--r-- 757 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program string_63
    type :: string_type
        character(len=:), allocatable :: raw
    end type string_type
    
    type(string_type) :: string

    string%raw = "Hello"

    string = ff(string)

    print *, string%raw
    if(string%raw /= "Hello!!") error stop

    contains 

    function ff(s) result(string) 
       type(string_type),intent(in) :: s
       type(string_type) :: string
       print *, s%raw
       if(s%raw /= "Hello") error stop
       ! This should work with no issue (but as to `subroutine_from_function` is using LHS to be the holder of the return, allocating return `string` means allcoating argument `s`)
    !    allocate(character(len(s%raw)+2) :: string%raw) 
       string%raw = s%raw //"!!"
    end function 
end program