<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - WSL StructTypes and Funcs should be type-specializable"
   href="https://bugs.webkit.org/show_bug.cgi?id=176335">176335</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>WSL StructTypes and Funcs should be type-specializable
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>WebKit Nightly Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>WebGPU
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned@lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>fpizlo@apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I think that we should generalize the power of casts.  Specifically, make it possible to say:

void foo<|int>() { ... }
void foo<|double>() { ... }

Then when you call foo<int>(), you get the first one, and if you call foo<double>(), you get the second one.  If you call foo<bool>(), you get an error.

In general, the syntax would be:

void foo<typeVariables | typeParameters>()

So you could say:

void foo<T, U:numeric | vec4<T>, U>() { ... }

You'd get that function if you called:

foo<vec4<int>, double>();</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>