Size: a a a

2020 December 30

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Процмакросы ИДЕ не видит
Твою глубину рекурсии тож не развернёт
источник

/

/bin/cat in rust_offtopic
имплы трейтов вообще не работают
источник

EG

Emmanuel Goldstein in rust_offtopic
Мне совершенно, абсолютно не хватает gensym в macro_rules!
источник

EG

Emmanuel Goldstein in rust_offtopic
Greenspun был прав
источник

p

polunin.ai in rust_offtopic
Language:
rust


Source:
trait M<A> {}
impl<A, B> M<A> for (A, B) {}
impl<A, B> M<B> for (A, B) {}
fn main() {}


Errors:
error[E0119]: conflicting implementations of trait `M<_>` for type `(_, _)`:
--> 845880507/source.rs:3:1
 |
2 | impl<A, B> M<A> for (A, B) {}
 | -------------------------- first implementation here
3 | impl<A, B> M<B> for (A, B) {}
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `(_, _)`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0119`.
источник

p

polunin.ai in rust_offtopic
Сука, я не хочу блять тайп левел индексы, но видимо придется
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Language:
rust


Source:
trait M<A> {}
impl<A, B> M<A> for (A, B) {}
impl<A, B> M<B> for (A, B) {}
fn main() {}


Errors:
error[E0119]: conflicting implementations of trait `M<_>` for type `(_, _)`:
--> 845880507/source.rs:3:1
 |
2 | impl<A, B> M<A> for (A, B) {}
 | -------------------------- first implementation here
3 | impl<A, B> M<B> for (A, B) {}
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `(_, _)`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0119`.
Эээ а что ты ожидал?
источник

EG

Emmanuel Goldstein in rust_offtopic
Расту пофиг на твои буковки, правда
источник

EG

Emmanuel Goldstein in rust_offtopic
Эти две строчки буквально эквивалентны
источник

EG

Emmanuel Goldstein in rust_offtopic
Это не какая-нибудь сложная логика, которая запрещает использовать умножение в реализации констдженериков, это тупо две одинаковые строчки
источник

p

polunin.ai in rust_offtopic
Нет это разные строчки
источник

p

polunin.ai in rust_offtopic
Придумай лучше как здесь обойтись без тайп левел индексов которые я ебал
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Нет это разные строчки
Нет, это одинаковые строчки.
1. Порядок объявления дженерик аргументов незначим, если они не зависят друг от друга
impl<A, B> M<B> for (A, B)
// ==
impl<B, A> M<B> for (A, B)

2. Сами по себе буквы незначимы
impl<A, B> M<B> for (A, B)
// ==
impl <A, B> M<A> for (A, B)
источник

EG

Emmanuel Goldstein in rust_offtopic
Ты не хочешь писать на языке, в котором идентификаторы что-то значат сами по себе
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Нет, это одинаковые строчки.
1. Порядок объявления дженерик аргументов незначим, если они не зависят друг от друга
impl<A, B> M<B> for (A, B)
// ==
impl<B, A> M<B> for (A, B)

2. Сами по себе буквы незначимы
impl<A, B> M<B> for (A, B)
// ==
impl <A, B> M<A> for (A, B)
Если заменить на конкретные типы то все норм
M<i32> for (i32, u32)
M<u32> for (i32, u32)
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Если заменить на конкретные типы то все норм
M<i32> for (i32, u32)
M<u32> for (i32, u32)
А где ты гарантируешь, что A != B?
источник

p

polunin.ai in rust_offtopic
Я канешно могу заставить юзеров это вручную мономорфизировать...
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
А где ты гарантируешь, что A != B?
У меня есть крейт которые кидает клмпайл-тайм ошибку, но мне кажется компилятор не догадается что там это условие выполняется
источник

EG

Emmanuel Goldstein in rust_offtopic
Компилятор не умеет в negative bounds никакого рода
источник

EG

Emmanuel Goldstein in rust_offtopic
Включая A != B
источник