...

Text file src/cuelang.org/go/cue/testdata/comprehensions/fields.txtar

Documentation: cuelang.org/go/cue/testdata/comprehensions

     1Issue #560
     2
     3-- cue.mod/module.cue --
     4module: "mod.test"
     5-- in.cue --
     6import "strings"
     7
     8dynamic: {
     9	for _, s in ["foo"] {
    10		(s):       1
    11		"\(s)bar": 2
    12	}
    13}
    14
    15ignoreOptional: {
    16	#x: {
    17		a?: string
    18		b?: string
    19		c:  string
    20	}
    21
    22	y: {
    23		for k,v in #x {
    24			(k): "exists"
    25		}
    26	}
    27}
    28
    29missingRequiredError:  {
    30	// Issue #2369
    31	#x: {
    32		a!: string
    33		b?: string
    34		c:  string
    35	}
    36
    37	y: {
    38		for k,v in #x {
    39			(k): "exists"
    40		}
    41	}
    42}
    43
    44issue560: {
    45	#User: {
    46		tags_str: string
    47		tags_map: {
    48			for k, v in strings.Split(tags_str, " ") {
    49				"\(v)": string
    50			}
    51			"{a}": string
    52		}
    53	}
    54
    55	user: {
    56		#User
    57		tags_str: "b {c}"
    58	}
    59}
    60-- out/eval/stats --
    61Leaks:  1
    62Freed:  32
    63Reused: 26
    64Allocs: 7
    65Retain: 1
    66
    67Unifications: 33
    68Conjuncts:    41
    69Disjuncts:    33
    70-- out/evalalpha --
    71(struct){
    72  dynamic: (struct){
    73    foo: (int){ 1 }
    74    foobar: (int){ 2 }
    75  }
    76  ignoreOptional: (struct){
    77    #x: (#struct){
    78      a?: (string){ string }
    79      b?: (string){ string }
    80      c: (string){ string }
    81    }
    82    y: (struct){
    83      c: (string){ "exists" }
    84    }
    85  }
    86  missingRequiredError: (struct){
    87    #x: (#struct){
    88      a!: (string){ string }
    89      b?: (string){ string }
    90      c: (string){ string }
    91    }
    92    y: (_|_){
    93      // [incomplete] missingRequiredError.y: missing required field in for comprehension: a:
    94      //     ./in.cue:33:3
    95      //     ./in.cue:27:3
    96      //     ./in.cue:33:14
    97      // missingRequiredError.y: key value of dynamic field must be concrete, found _|_(missingRequiredError.y: missing required field in for comprehension: a):
    98      //     ./in.cue:34:5
    99    }
   100  }
   101  issue560: (struct){
   102    #User: (#struct){
   103      tags_str: (string){ string }
   104      tags_map: (_|_){
   105        // [incomplete] issue560.#User.tags_map: error in call to strings.Split: non-concrete value string:
   106        //     ./in.cue:43:16
   107        //     ./in.cue:41:13
   108        "{a}": (string){ string }
   109      }
   110    }
   111    user: (#struct){
   112      tags_str: (string){ "b {c}" }
   113      tags_map: (#struct){
   114        "{a}": (string){ string }
   115        b: (string){ string }
   116        "{c}": (string){ string }
   117      }
   118    }
   119  }
   120}
   121-- diff/-out/evalalpha<==>+out/eval --
   122diff old new
   123--- old
   124+++ new
   125@@ -24,6 +24,8 @@
   126       //     ./in.cue:33:3
   127       //     ./in.cue:27:3
   128       //     ./in.cue:33:14
   129+      // missingRequiredError.y: key value of dynamic field must be concrete, found _|_(missingRequiredError.y: missing required field in for comprehension: a):
   130+      //     ./in.cue:34:5
   131     }
   132   }
   133   issue560: (struct){
   134-- diff/todo/p2 --
   135Near-duplicate message
   136-- out/eval --
   137(struct){
   138  dynamic: (struct){
   139    foo: (int){ 1 }
   140    foobar: (int){ 2 }
   141  }
   142  ignoreOptional: (struct){
   143    #x: (#struct){
   144      a?: (string){ string }
   145      b?: (string){ string }
   146      c: (string){ string }
   147    }
   148    y: (struct){
   149      c: (string){ "exists" }
   150    }
   151  }
   152  missingRequiredError: (struct){
   153    #x: (#struct){
   154      a!: (string){ string }
   155      b?: (string){ string }
   156      c: (string){ string }
   157    }
   158    y: (_|_){
   159      // [incomplete] missingRequiredError.y: missing required field in for comprehension: a:
   160      //     ./in.cue:33:3
   161      //     ./in.cue:27:3
   162      //     ./in.cue:33:14
   163    }
   164  }
   165  issue560: (struct){
   166    #User: (#struct){
   167      tags_str: (string){ string }
   168      tags_map: (_|_){
   169        // [incomplete] issue560.#User.tags_map: error in call to strings.Split: non-concrete value string:
   170        //     ./in.cue:43:16
   171        //     ./in.cue:41:13
   172        "{a}": (string){ string }
   173      }
   174    }
   175    user: (#struct){
   176      tags_str: (string){ "b {c}" }
   177      tags_map: (#struct){
   178        "{a}": (string){ string }
   179        b: (string){ string }
   180        "{c}": (string){ string }
   181      }
   182    }
   183  }
   184}
   185-- out/compile --
   186--- in.cue
   187{
   188  dynamic: {
   189    for _, s in [
   190      "foo",
   191    ] {
   192      〈1;s〉: 1
   193      "\(〈1;s〉)bar": 2
   194    }
   195  }
   196  ignoreOptional: {
   197    #x: {
   198      a?: string
   199      b?: string
   200      c: string
   201    }
   202    y: {
   203      for k, v in 〈1;#x〉 {
   204        〈1;k〉: "exists"
   205      }
   206    }
   207  }
   208  missingRequiredError: {
   209    #x: {
   210      a!: string
   211      b?: string
   212      c: string
   213    }
   214    y: {
   215      for k, v in 〈1;#x〉 {
   216        〈1;k〉: "exists"
   217      }
   218    }
   219  }
   220  issue560: {
   221    #User: {
   222      tags_str: string
   223      tags_map: {
   224        for k, v in 〈import;strings〉.Split(〈1;tags_str〉, " ") {
   225          "\(〈1;v〉)": string
   226        }
   227        "{a}": string
   228      }
   229    }
   230    user: {
   231      〈1;#User〉
   232      tags_str: "b {c}"
   233    }
   234  }
   235}

View as plain text