resolve_rewrites.carbon 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. // Exceptions. See /LICENSE for license information.
  3. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. //
  5. // AUTOUPDATE
  6. // RUN: %{explorer-run}
  7. // RUN: %{explorer-run-trace}
  8. // CHECK:STDOUT: result: 1
  9. package ExplorerTest api;
  10. interface ManyTypes {
  11. let T0:! type;
  12. let T1:! type;
  13. let T2:! type;
  14. let T3:! type;
  15. let T4:! type;
  16. let T5:! type;
  17. let T6:! type;
  18. let T7:! type;
  19. let T8:! type;
  20. let T9:! type;
  21. }
  22. fn F[
  23. M:! ManyTypes where
  24. .T0 = .T1 and
  25. .T1 = .T2 and
  26. .T2 = .T3 and
  27. .T3 = .T4 and
  28. .T4 = .T5 and
  29. .T5 = .T6 and
  30. .T6 = .T7 and
  31. .T7 = .T8 and
  32. .T8 = .T9 and
  33. .T9 = i32](m: M) -> i32 {
  34. var v: M.T0 = 1;
  35. return v;
  36. }
  37. class C {
  38. impl as ManyTypes where
  39. .T0 = i32 and
  40. .T1 = .T0 and
  41. .T2 = .T1 and
  42. .T3 = .T2 and
  43. .T4 = .T3 and
  44. .T5 = .T4 and
  45. .T6 = .T5 and
  46. .T7 = .T6 and
  47. .T8 = .T7 and
  48. .T9 = .T8 {}
  49. }
  50. fn Main() -> i32 {
  51. var c: C = {};
  52. return F(c);
  53. }