- 02 1月, 2022 1 次提交
-
-
由 Josh Triplett 提交于
Replace `-Z symbol-mangling-version=v0` with `-C symbol-mangling-version=v0`. Replace `-Z symbol-mangling-version=legacy` with `-Z unstable-options -C symbol-mangling-version=legacy`.
-
- 02 10月, 2021 1 次提交
-
-
由 David Wood 提交于
This commit removes all logic which marks parameters as used based on their presence in predicates - given rust-lang/rust#75675, this will enable more polymorphization and avoid the symbol clashes that predicate logic previously sidestepped. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 16 9月, 2021 1 次提交
-
-
由 Caio 提交于
-
- 30 8月, 2021 2 次提交
- 06 3月, 2021 1 次提交
-
-
由 Santiago Pastorino 提交于
-
- 27 12月, 2020 1 次提交
-
-
由 Bastian Kauschke 提交于
-
- 17 10月, 2020 1 次提交
-
-
由 Yuki Okushi 提交于
-
- 17 8月, 2020 1 次提交
-
-
由 David Wood 提交于
This commit modifies polymorphization's handling of predicates so that if any generic parameter is used in a predicate then all parameters in that predicate are used. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 15 8月, 2020 1 次提交
-
-
由 David Wood 提交于
This commit adjusts polymorphization's handling of predicates so that after ensuring that `T` is used in `I: Foo<T>` if `I` is used, it now ensures that `I` is used if `T` is used in `I: Foo<T>`. This is necessary to mark generic parameters that only exist in impl parameters as used - thereby avoiding symbol clashes when using the new mangling scheme. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 10 8月, 2020 1 次提交
-
-
由 David Wood 提交于
This commit constrains the support added for handling unevaluated consts in polymorphization (introduced in #75260) by: - Skipping associated constants as this causes cycle errors. - Skipping promoted constants when they contain `Self` as this ensures `T` is used in constants of the form `<Self as Foo<T>>`. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 08 8月, 2020 2 次提交
-
-
由 David Wood 提交于
This commit modifies how instances are polymorphized so that closures and generators have any closures or generators captured within their upvars also polymorphized - this avoids symbol clashes with the new symbol mangling scheme. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
This commit makes polymorphization visit non-promoted unevaluated constants rather than visit their substs directly. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 07 8月, 2020 1 次提交
-
-
由 David Wood 提交于
This commit makes polymorphization visited the MIR of unevaluated constants with available promoted MIR instead of visiting the substitutions of that constant - which will mark all of the generic parameters as used. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 31 7月, 2020 1 次提交
-
-
由 David Wood 提交于
This commit adds a `ensure_monomorphic_enough` utility function which checks whether a type needs substitution, but only for parameters that the `unused_generic_params` query considers used. `ensure_monomorphic_enough` is then used throughout interpret where `needs_subst` checks previously existed (in particular, for some pointer casts and for reflection intrinsics more precise). Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 22 7月, 2020 2 次提交
-
-
由 Bastian Kauschke 提交于
-
由 David Wood 提交于
This commit disables polymorphisation to resolve regressions related to closures which inherit unused generic parameters and are then used in casts or reflection. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 21 7月, 2020 4 次提交
-
-
由 David Wood 提交于
This commit introduces a `FiniteBitSet` type which replaces the manual bit manipulation which was being performed in polymorphization. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
This commit replaces the `-Z polymorphize-errors` debugging flag with a `#[rustc_polymorphize_error]` attribute for use on functions. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
This commit normalizes function signatures for instances before substituting, a workaround for polymorphization considering parameters unused when they show up in the signature, but not the body (due to being normalized). Unfortunately, this causes test output to change with the parallel compiler only. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
This commit implements the `unused_generic_params` query, an initial version of polymorphization which detects when an item does not use generic parameters and is being needlessly monomorphized as a result. Signed-off-by: NDavid Wood <david@davidtw.co>
-