Commit 2c39079
authored
fix: covariant method overrides break Go compilation (#4967)
Currently generated Go code is not compiled, which leads to potential codegen mistakes slipping in.
Switch on compilation by default; i.e., make the opt-in environment variable an opt-out environment variable.
This revealed a problem with covariant return types in Go; this concept does not exist. We'll solve that by not emitting the more specific return type. This means Go users will not benefit from the additional typing, but the feature can remain in other languages and the compilation will succeed. Go users instead get documentation telling them the real type. They can easily user interface conversions to convert to the actual type. While this is a lot awkward, it still makes it possible for Go users to benefit from this improvement in most circumstances.
---
By submitting this pull request, I confirm that my contribution is made under the terms of the [Apache 2.0 license].
[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.01 parent ee67cc9 commit 2c39079
File tree
15 files changed
+1034
-53
lines changed- packages
- @jsii/go-runtime-test/project
- jsii-calc
- lib/covariant-overrides
- test
- jsii-pacmak
- lib/targets
- go/types
- test/generated-code/__snapshots__
- jsii-reflect
- lib
- test
- __snapshots__
15 files changed
+1034
-53
lines changedLines changed: 64 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
Lines changed: 23 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
10 | 15 | | |
11 | 16 | | |
12 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
13 | 23 | | |
14 | 24 | | |
15 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
16 | 36 | | |
17 | 37 | | |
18 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16749 | 16749 | | |
16750 | 16750 | | |
16751 | 16751 | | |
16752 | | - | |
| 16752 | + | |
16753 | 16753 | | |
16754 | 16754 | | |
16755 | 16755 | | |
| |||
16758 | 16758 | | |
16759 | 16759 | | |
16760 | 16760 | | |
16761 | | - | |
| 16761 | + | |
16762 | 16762 | | |
16763 | 16763 | | |
16764 | 16764 | | |
| |||
16778 | 16778 | | |
16779 | 16779 | | |
16780 | 16780 | | |
16781 | | - | |
| 16781 | + | |
16782 | 16782 | | |
16783 | 16783 | | |
16784 | 16784 | | |
| |||
16797 | 16797 | | |
16798 | 16798 | | |
16799 | 16799 | | |
16800 | | - | |
| 16800 | + | |
16801 | 16801 | | |
16802 | 16802 | | |
16803 | 16803 | | |
| |||
16825 | 16825 | | |
16826 | 16826 | | |
16827 | 16827 | | |
16828 | | - | |
| 16828 | + | |
16829 | 16829 | | |
16830 | 16830 | | |
16831 | 16831 | | |
| |||
16834 | 16834 | | |
16835 | 16835 | | |
16836 | 16836 | | |
16837 | | - | |
| 16837 | + | |
16838 | 16838 | | |
16839 | 16839 | | |
16840 | 16840 | | |
| |||
16855 | 16855 | | |
16856 | 16856 | | |
16857 | 16857 | | |
16858 | | - | |
| 16858 | + | |
16859 | 16859 | | |
16860 | 16860 | | |
16861 | 16861 | | |
| |||
16875 | 16875 | | |
16876 | 16876 | | |
16877 | 16877 | | |
16878 | | - | |
| 16878 | + | |
16879 | 16879 | | |
16880 | 16880 | | |
16881 | 16881 | | |
| |||
16895 | 16895 | | |
16896 | 16896 | | |
16897 | 16897 | | |
16898 | | - | |
| 16898 | + | |
16899 | 16899 | | |
16900 | 16900 | | |
16901 | 16901 | | |
| |||
16908 | 16908 | | |
16909 | 16909 | | |
16910 | 16910 | | |
16911 | | - | |
| 16911 | + | |
16912 | 16912 | | |
16913 | 16913 | | |
16914 | 16914 | | |
| |||
16934 | 16934 | | |
16935 | 16935 | | |
16936 | 16936 | | |
16937 | | - | |
| 16937 | + | |
16938 | 16938 | | |
16939 | 16939 | | |
16940 | 16940 | | |
| |||
16945 | 16945 | | |
16946 | 16946 | | |
16947 | 16947 | | |
16948 | | - | |
| 16948 | + | |
16949 | 16949 | | |
16950 | 16950 | | |
16951 | 16951 | | |
| |||
16971 | 16971 | | |
16972 | 16972 | | |
16973 | 16973 | | |
16974 | | - | |
| 16974 | + | |
16975 | 16975 | | |
| 16976 | + | |
| 16977 | + | |
| 16978 | + | |
| 16979 | + | |
| 16980 | + | |
| 16981 | + | |
| 16982 | + | |
| 16983 | + | |
| 16984 | + | |
| 16985 | + | |
| 16986 | + | |
| 16987 | + | |
| 16988 | + | |
| 16989 | + | |
| 16990 | + | |
| 16991 | + | |
| 16992 | + | |
| 16993 | + | |
16976 | 16994 | | |
16977 | 16995 | | |
| 16996 | + | |
| 16997 | + | |
| 16998 | + | |
| 16999 | + | |
| 17000 | + | |
| 17001 | + | |
| 17002 | + | |
| 17003 | + | |
| 17004 | + | |
| 17005 | + | |
| 17006 | + | |
| 17007 | + | |
| 17008 | + | |
| 17009 | + | |
| 17010 | + | |
| 17011 | + | |
| 17012 | + | |
| 17013 | + | |
| 17014 | + | |
| 17015 | + | |
| 17016 | + | |
| 17017 | + | |
| 17018 | + | |
| 17019 | + | |
| 17020 | + | |
| 17021 | + | |
| 17022 | + | |
| 17023 | + | |
| 17024 | + | |
| 17025 | + | |
16978 | 17026 | | |
16979 | 17027 | | |
16980 | 17028 | | |
| |||
16993 | 17041 | | |
16994 | 17042 | | |
16995 | 17043 | | |
16996 | | - | |
| 17044 | + | |
16997 | 17045 | | |
| 17046 | + | |
| 17047 | + | |
| 17048 | + | |
| 17049 | + | |
| 17050 | + | |
| 17051 | + | |
| 17052 | + | |
| 17053 | + | |
| 17054 | + | |
| 17055 | + | |
| 17056 | + | |
| 17057 | + | |
| 17058 | + | |
| 17059 | + | |
| 17060 | + | |
| 17061 | + | |
| 17062 | + | |
| 17063 | + | |
16998 | 17064 | | |
16999 | 17065 | | |
| 17066 | + | |
| 17067 | + | |
| 17068 | + | |
| 17069 | + | |
| 17070 | + | |
| 17071 | + | |
| 17072 | + | |
| 17073 | + | |
| 17074 | + | |
| 17075 | + | |
| 17076 | + | |
| 17077 | + | |
| 17078 | + | |
| 17079 | + | |
| 17080 | + | |
| 17081 | + | |
17000 | 17082 | | |
17001 | 17083 | | |
17002 | 17084 | | |
| |||
17016 | 17098 | | |
17017 | 17099 | | |
17018 | 17100 | | |
| 17101 | + | |
| 17102 | + | |
| 17103 | + | |
| 17104 | + | |
| 17105 | + | |
| 17106 | + | |
| 17107 | + | |
| 17108 | + | |
| 17109 | + | |
| 17110 | + | |
| 17111 | + | |
| 17112 | + | |
| 17113 | + | |
| 17114 | + | |
| 17115 | + | |
| 17116 | + | |
| 17117 | + | |
17019 | 17118 | | |
17020 | 17119 | | |
| 17120 | + | |
| 17121 | + | |
| 17122 | + | |
| 17123 | + | |
| 17124 | + | |
| 17125 | + | |
| 17126 | + | |
| 17127 | + | |
| 17128 | + | |
| 17129 | + | |
| 17130 | + | |
| 17131 | + | |
| 17132 | + | |
| 17133 | + | |
| 17134 | + | |
17021 | 17135 | | |
17022 | 17136 | | |
17023 | 17137 | | |
| |||
19672 | 19786 | | |
19673 | 19787 | | |
19674 | 19788 | | |
19675 | | - | |
| 19789 | + | |
19676 | 19790 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
60 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
61 | 66 | | |
62 | 67 | | |
63 | 68 | | |
| |||
0 commit comments