Skip to content

Commit 1921743

Browse files
committed
Fix failing compile tests
I've also renamed `ContainsTable` to `AppearsInFromClause`, as the error message complaining that `users: AppearsInFromClause<posts>` is not satisfied is much clearer.
1 parent ab3eea7 commit 1921743

10 files changed

Lines changed: 30 additions & 27 deletions

diesel/src/macros/mod.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,24 +27,24 @@ macro_rules! __diesel_column {
2727
}
2828

2929
impl<QS> AppearsOnTable<QS> for $column_name where
30-
QS: ContainsTable<$($table)::*, Count=Once>,
30+
QS: AppearsInFromClause<$($table)::*, Count=Once>,
3131
{
3232
}
3333

3434
impl<Left, Right> SelectableExpression<
3535
Join<Left, Right, LeftOuter>,
3636
> for $column_name where
3737
$column_name: AppearsOnTable<Join<Left, Right, LeftOuter>>,
38-
Left: ContainsTable<$($table)::*, Count=Once>,
39-
Right: ContainsTable<$($table)::*, Count=Never>,
38+
Left: AppearsInFromClause<$($table)::*, Count=Once>,
39+
Right: AppearsInFromClause<$($table)::*, Count=Never>,
4040
{
4141
}
4242

4343
impl<Left, Right> SelectableExpression<
4444
Join<Left, Right, Inner>,
4545
> for $column_name where
4646
$column_name: AppearsOnTable<Join<Left, Right, Inner>>,
47-
Join<Left, Right, Inner>: ContainsTable<$($table)::*, Count=Once>,
47+
Join<Left, Right, Inner>: AppearsInFromClause<$($table)::*, Count=Once>,
4848
{
4949
}
5050

@@ -323,7 +323,7 @@ macro_rules! table_body {
323323
use $crate::associations::HasTable;
324324
use $crate::query_builder::*;
325325
use $crate::query_builder::nodes::Identifier;
326-
use $crate::query_source::{ContainsTable, Once};
326+
use $crate::query_source::{AppearsInFromClause, Once};
327327
$(use $($import)::+;)+
328328
pub use self::columns::*;
329329

@@ -403,7 +403,7 @@ macro_rules! table_body {
403403
}
404404
}
405405

406-
impl ContainsTable<table> for table {
406+
impl AppearsInFromClause<table> for table {
407407
type Count = Once;
408408
}
409409

@@ -416,7 +416,7 @@ macro_rules! table_body {
416416
use $crate::backend::Backend;
417417
use $crate::query_builder::{QueryFragment, AstPass};
418418
use $crate::query_source::joins::{Join, JoinOn, Inner, LeftOuter};
419-
use $crate::query_source::{ContainsTable, Once, Never};
419+
use $crate::query_source::{AppearsInFromClause, Once, Never};
420420
use $crate::result::QueryResult;
421421
$(use $($import)::+;)+
422422

@@ -524,7 +524,7 @@ macro_rules! joinable_inner {
524524
primary_key_ty = $primary_key_ty:ty,
525525
primary_key_expr = $primary_key_expr:expr,
526526
) => {
527-
impl $crate::query_source::ContainsTable<$right_table_ty> for $left_table_ty {
527+
impl $crate::query_source::AppearsInFromClause<$right_table_ty> for $left_table_ty {
528528
type Count = $crate::query_source::Never;
529529
}
530530
impl $crate::JoinTo<$right_table_ty> for $left_table_ty {

diesel/src/query_source/joins.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,18 +175,18 @@ impl<DB: Backend> QueryFragment<DB> for LeftOuter {
175175
}
176176
}
177177

178-
use super::{Succ, Never, ContainsTable};
178+
use super::{Succ, Never, AppearsInFromClause};
179179

180-
impl<T, Left, Right, Kind> ContainsTable<T> for Join<Left, Right, Kind> where
181-
Left: ContainsTable<T>,
182-
Right: ContainsTable<T>,
180+
impl<T, Left, Right, Kind> AppearsInFromClause<T> for Join<Left, Right, Kind> where
181+
Left: AppearsInFromClause<T>,
182+
Right: AppearsInFromClause<T>,
183183
Left::Count: Plus<Right::Count>,
184184
{
185185
type Count = <Left::Count as Plus<Right::Count>>::Output;
186186
}
187187

188-
impl<T, Join, On> ContainsTable<T> for JoinOn<Join, On> where
189-
Join: ContainsTable<T>,
188+
impl<T, Join, On> AppearsInFromClause<T> for JoinOn<Join, On> where
189+
Join: AppearsInFromClause<T>,
190190
{
191191
type Count = Join::Count;
192192
}

diesel/src/query_source/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub trait Table: QuerySource + AsQuery + Sized {
4949
fn all_columns() -> Self::AllColumns;
5050
}
5151

52-
pub trait ContainsTable<QS> {
52+
pub trait AppearsInFromClause<QS> {
5353
type Count;
5454
}
5555

diesel_compile_tests/tests/compile-fail/aggregate_expression_requires_column_from_same_table.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ fn main() {
1919
use diesel::expression::dsl::*;
2020
let source = users::table.select(sum(posts::id));
2121
//~^ ERROR E0277
22-
//~| ERROR AppearsOnTable
22+
//~| ERROR AppearsInFromClause
2323
let source = users::table.select(avg(posts::id));
2424
//~^ ERROR E0277
25-
//~| ERROR AppearsOnTable
25+
//~| ERROR AppearsInFromClause
2626
let source = users::table.select(max(posts::id));
2727
//~^ ERROR E0277
28-
//~| ERROR AppearsOnTable
28+
//~| ERROR AppearsInFromClause
2929
let source = users::table.select(min(posts::id));
3030
//~^ ERROR E0277
31-
//~| ERROR AppearsOnTable
31+
//~| ERROR AppearsInFromClause
3232
}

diesel_compile_tests/tests/compile-fail/boxed_queries_require_selectable_expression_for_filter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ table! {
2020

2121
fn main() {
2222
users::table.into_boxed::<Pg>().filter(posts::title.eq("Hello"));
23-
//~^ ERROR AppearsOnTable
23+
//~^ ERROR AppearsInFromClause
2424
}

diesel_compile_tests/tests/compile-fail/boxed_queries_require_selectable_expression_for_order.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ table! {
2020

2121
fn main() {
2222
users::table.into_boxed::<Pg>().order(posts::title.desc());
23-
//~^ ERROR AppearsOnTable
23+
//~^ ERROR AppearsInFromClause
2424
}

diesel_compile_tests/tests/compile-fail/custom_returning_requires_selectable_expression.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@ fn main() {
3636
};
3737
let stmt = insert(&new_user).into(users).returning((name, bad::age));
3838
//~^ ERROR SelectableExpression
39-
//~| ERROR AppearsOnTable
39+
//~| ERROR AppearsInFromClause
4040
}

diesel_compile_tests/tests/compile-fail/filter_cannot_take_comparison_for_columns_from_another_table.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ table! {
1919

2020
fn main() {
2121
let _ = users::table.filter(posts::id.eq(1));
22-
//~^ ERROR AppearsOnTable
22+
//~^ ERROR AppearsInFromClause
2323
let _ = users::table.filter(users::name.eq(posts::title));
24-
//~^ ERROR AppearsOnTable
24+
//~^ ERROR AppearsInFromClause
2525
}

diesel_compile_tests/tests/compile-fail/right_side_of_left_join_requires_nullable.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,17 @@ fn main() {
2727
let join = users::table.left_outer_join(posts::table);
2828

2929
// Invalid, only Nullable<title> is selectable
30-
let _ = join.select(posts::title); //~ ERROR E0277
30+
let _ = join.select(posts::title);
31+
//~^ ERROR E0271
32+
//~| ERROR E0271
3133
// Valid
3234
let _ = join.select(posts::title.nullable());
3335
// Valid -- NULL to a function will return null
3436
let _ = join.select(lower(posts::title).nullable());
3537
// Invalid, only Nullable<title> is selectable
36-
let _ = join.select(lower(posts::title)); //~ ERROR E0277
38+
let _ = join.select(lower(posts::title));
39+
//~^ ERROR E0271
40+
//~| ERROR E0271
3741
// Invalid, Nullable<title> is selectable, but lower expects not-null
3842
let _ = join.select(lower(posts::title.nullable())); //~ ERROR E0271
3943
}

diesel_compile_tests/tests/compile-fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ fn main() {
2323
//~^ ERROR Selectable
2424
//~| ERROR E0277
2525
//~| ERROR E0277
26-
//~| ERROR E0277
2726
let stuff = users::table.select((posts::id, users::name));
2827
//~^ ERROR Selectable
2928
//~| ERROR E0277

0 commit comments

Comments
 (0)