<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/126502>126502</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            TableGen error `Cannot access field 'Val' of value 'Def'` when using `#` operator
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            tablegen
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          s-barannikov
      </td>
    </tr>
</table>

<pre>
    This simple test fails to compile:

` $ cat test.td`
```
class Rec { string Val = "abc"; }
def Def : Rec;

class Use<string V> { string Val = V; }

def MyDef : Use<"" # Def.Val>;
```

`$ llvm-tblgen test.td`
```
test.td:6:26: error: Cannot access field 'Val' of value '"Def"'
def MyDef : Use<"" # Def.Val>;
 ^
```

However, if I add a level of indirection, it does compile:
` $ cat test.td`
```
class Rec { string Val = "abc"; }
def Def : Rec;

class Use<string V> { string Val = V; }

class Helper<Rec R> : Use<"" # R.Val>;
def MyDef : Helper<Def>;
```

`$ llvm-tblgen test.td`
```
...
def MyDef {     // Use Helper
  string Val = "abc";
}
```

I'm not sure if this is a bug, but it's definitely unexpected behavior.

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUVE2P4zYM_TX0hRhDpmIrPviQj0l3D70MtnOXbdpRq1iBJGc6_76Qk3Sadlq0QC8LCIktie898pHWIZhxYm6g3EK5z_Qcj8434anVXk-T-cVdstb17823owkYzOlsGSOHiIM2NmB02LnT2VgGuQGxrEog0Ao7HZebeeyhEteD2xKbzuoQ8IU7BLXFEL2ZRnzVFkHuEYh02wERyC2C2oPY9DzgngcEuUlRILdXsivOT4FB7u4oIJ8_Q339QLsB_vh-h7wCJEYiBJKJK3_VFuTzjeoP2m-vtEJrL6en2NqRp79P9X4gNxXIDaUfZO-dTw87PU0uou46DgEHw7ZHIJWoSaEb8KLtzGkLiPY8LBLVf9ePUD7_NY0v7o0v7IF2aAb8irrvUaPlC9vEbabeeO6icdNyJWLvOPzJ8O_C7WvgF7Zn9iB3ScnLEvhZ7V4eKvdY6N8hkhf_Q3Pkef7IobYgaqAD0CEpuxOKDf5T3RLqNddHKV-B1AlTh4XZczI5pjk2ATW285hcbeeIJgKpgD0PZjKR7TvOE_965i5yjy0f9cU4n4RmfSP7WtY646ZQsi7WVb2usmPTFaKtNFdiXatBFlIqpVZ9V1WK23XZ1ZlpSFApqBBFQfWqyldtzWWlW6WUKvuhhJXgkzY2T3XLnR8zE8LMTUFVKSizumUbls8U0SKdgJJrUbeWR57SRrnPfLPUvZ3HACthTYjhAzGaaLn5liJ-4Ok6hQiV-PdTuIygSk3_duQJ55AcWQyXadOd2evofDZ72xxjPIc0JYubo4nHuc07dwI6JEW3v6ezdz9zF4EOS8IB6HDL-dLQbwEAAP__AlWc4w">