cuelang.org/go@v0.10.1/internal/core/dep/testdata/inline.txtar (about)

     1  -- in.cue --
     2  import (
     3  	"regexp"
     4  	"strings"
     5  )
     6  
     7  a: b: {
     8  	c: [int, int]
     9  	d: [c][0]  // a.b.c (dynamic/inner only)
    10  
    11  	e: s.k
    12  
    13  	f1: {out: c}.out   // a.b.c (dynamic/inner only)
    14  	f2: {out: q}.out   // q
    15  	f3: {out: q}.out   // q
    16  	f4: {out: q}.out.x // q.x
    17  
    18  	h1: {out: r: s: string}.out
    19  	h2: {out: {out: r: q}.out}.out.r    // q
    20  	h3: {out: {out: r: c}.out}.out.r[0] // a.b.c[0] (dynamic/inner only)
    21  	h4: {out: r: q}.out.r.x             // q.x
    22  	h5: {out: {out: r: q}.out}.out.r.x  // q.x
    23  	h6: {out: {out: r: q}.out.r}.out.x  // q.x
    24  
    25  	// Dynamic processing reports dependencies within the root.
    26  	i: h1.r   // a.b.h1.r
    27  	j: h1.r.s // a.b.h1.r.s
    28  
    29  	k: r.k   // r.k
    30  	l: r.k.l // r.k.l
    31  
    32  	// Do not report dependencies that are not selected and not needed for
    33  	// evaluating the ultimate value.
    34  	m1: {
    35  		out:   q
    36  		other: s // should not appear in output
    37  	}.out
    38  
    39  	m2: {
    40  		out:   other
    41  		other: s // should appear in output
    42  	}.out
    43  
    44  	m3: {
    45  		// report msg
    46  		regexp.FindNamedSubmatch(#"Hello (?P<out>\w*)!"#, msg)
    47  	}.out
    48  
    49  	m4: {
    50  		// Theoretically could not report message, but it is hard to know in
    51  		// general whether a function will return a result. So report.
    52  		regexp.FindNamedSubmatch(#"Hello (?P<person>\w*)!"#, msg)
    53  		out: "foo"
    54  	}.out
    55  
    56  	m5: {
    57  		// report msg
    58  		regexp.FindNamedSubmatch(#"Hello (?P<person>\w*)!"#, msg)
    59  		out:    person
    60  		person: string
    61  	}.out
    62  
    63  	m6: {
    64  		person: strings.ToUpper(msg) // do not report msg
    65  		out:    "foo"
    66  	}.out
    67  
    68  	t1: {
    69  		runs: t1:  {
    70  			cmd: ["sh", "-c", "sleep 1; echo t1"]
    71  			stdout: string
    72  		}
    73  		runs: t2:  {
    74  			cmd: ["sh", "-c", "sleep 1; echo t2"]
    75  			stdout: string
    76  		}
    77  		print:  {
    78  			// report the references in arg
    79  			text: (#f & {arg: runs.t1.stdout + runs.t2.stdout}).result
    80  		}
    81  	}
    82  
    83  	t2: {
    84  		runs: t1:  {
    85  			cmd: ["sh", "-c", "sleep 1; echo t1"]
    86  			stdout: string
    87  		}
    88  		runs: t2:  {
    89  			cmd: ["sh", "-c", "sleep 1; echo t2"]
    90  			stdout: string
    91  		}
    92  		print:  {
    93  			// do not report the references in arg
    94  			text: (#g & {arg: runs.t1.stdout + runs.t2.stdout}).result
    95  		}
    96  	}
    97  }
    98  
    99  q: x: y: [...int]
   100  r: {out: k: l: string}.out
   101  s: k: l: int
   102  
   103  msg: string
   104  
   105  #f: {
   106  	arg: string
   107  	result: strings.Join(strings.Split(arg, ""), ".")
   108  }
   109  #g: result: strings.Join(strings.Split("foo.bar", ""), ".")
   110  
   111  a: issue2512: (extIf & {}).env
   112  extIf: {
   113  	if true {
   114  		env: msg
   115  	}
   116  }
   117  
   118  -- out/dependencies/field --
   119  line  reference    path of resulting vertex
   120  -- out/dependencies/all --
   121  line  reference                                               path of resulting vertex
   122  10:   s.k                                                  => s.k
   123  13:   q                                                    => q
   124  14:   q                                                    => q
   125  15:   {out: q}.out.x                                       => q.x
   126  18:   q                                                    => q
   127  20:   {out: r: q}.out.r.x                                  => q.x
   128  21:   {out: {out: r: q}.out}.out.r.x                       => q.x
   129  22:   {out: {out: r: q}.out.r}.out.x                       => q.x
   130  28:   r.k                                                  => r.k
   131  29:   r.k.l                                                => r.k.l
   132  34:   q                                                    => q
   133  40:   s                                                    => s
   134  45:   regexp.FindNamedSubmatch                             => "regexp".FindNamedSubmatch
   135  45:   msg                                                  => msg
   136  51:   regexp.FindNamedSubmatch                             => "regexp".FindNamedSubmatch
   137  51:   msg                                                  => msg
   138  57:   regexp.FindNamedSubmatch                             => "regexp".FindNamedSubmatch
   139  57:   msg                                                  => msg
   140  106:  strings.Join                                         => "strings".Join
   141  106:  strings.Split                                        => "strings".Split
   142  106:  arg                                                  => **non-rooted**
   143  78:   (#f & {arg: runs.t1.stdout + runs.t2.stdout}).result => #f.result
   144  108:  strings.Join                                         => "strings".Join
   145  108:  strings.Split                                        => "strings".Split
   146  93:   (#g & {arg: runs.t1.stdout + runs.t2.stdout}).result => #g.result
   147  113:  msg                                                  => msg
   148  110:  (extIf & {}).env                                     => extIf.env
   149  -- out/dependencies/dynamic --
   150  line  reference                          path of resulting vertex
   151  8:    [c][0]                          => a.b.c
   152  10:   s.k                             => s.k
   153  12:   {out: c}.out                    => a.b.c
   154  13:   {out: q}.out                    => q
   155  14:   {out: q}.out                    => q
   156  15:   {out: q}.out.x                  => q.x
   157  18:   {out: {out: r: q}.out}.out.r    => q
   158  19:   {out: {out: r: c}.out}.out.r[0] => a.b.c[0]
   159  20:   {out: r: q}.out.r.x             => q.x
   160  21:   {out: {out: r: q}.out}.out.r.x  => q.x
   161  22:   {out: {out: r: q}.out.r}.out.x  => q.x
   162  25:   h1.r                            => a.b.h1.r
   163  26:   h1.r.s                          => a.b.h1.r.s
   164  28:   r.k                             => r.k
   165  29:   r.k.l                           => r.k.l
   166  33:   {
   167        out:   q
   168        other: s // should not appear in output
   169  }.out => q
   170  38:   {
   171        out:   other
   172        other: s // should appear in output
   173  }.out => s
   174  45:   regexp.FindNamedSubmatch                             => "regexp".FindNamedSubmatch
   175  45:   msg                                                  => msg
   176  51:   regexp.FindNamedSubmatch                             => "regexp".FindNamedSubmatch
   177  51:   msg                                                  => msg
   178  57:   regexp.FindNamedSubmatch                             => "regexp".FindNamedSubmatch
   179  57:   msg                                                  => msg
   180  106:  strings.Join                                         => "strings".Join
   181  106:  strings.Split                                        => "strings".Split
   182  78:   runs.t1.stdout                                       => a.b.t1.runs.t1.stdout
   183  78:   runs.t2.stdout                                       => a.b.t1.runs.t2.stdout
   184  78:   (#f & {arg: runs.t1.stdout + runs.t2.stdout}).result => #f.result
   185  108:  strings.Join                                         => "strings".Join
   186  108:  strings.Split                                        => "strings".Split
   187  93:   (#g & {arg: runs.t1.stdout + runs.t2.stdout}).result => #g.result
   188  113:  msg                                                  => msg
   189  110:  (extIf & {}).env                                     => extIf.env