You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: many_to_many_negative.rs
    path of file: ./repos/prisma-engines/psl/psl/tests/attributes/relations
    
    the code of the file until where you have to start completion: use crate::{common::*, with_header, Provider};

#[test]
fn implicit_many_to_many_relation_fields_with_referential_actions() {
    let schema = indoc! {r#"
        datasource db {
          provider = "sqlit
    
fn embedded_many_to_many_relations_must_refer_an_id_from_both_sides() {
    let dml = indoc! {r#"
        model A {
          id    Int   @id @map("_id")
          u1    Int   @unique
          b_ids Int[]
          bs    B[]   @relation(fields: [b_ids], references: [u2])
        }

        model B {
          id    Int   @id @map("_id")
          u2    Int   @unique
          a_ids Int[]
          as    A[]   @relation(fields: [a_ids], references: [u1])
        }
    "#};

    let expect = expect![[r#"
        [1;91merror[0m: [1mError parsing attribute "@relation": The `references` argument must point to a singular `id` field[0m
          [1;94m-->[0m  [4mschema.prisma:15[0m
        [1;94m   | [0m
        [1;94m14 | [0m  b_ids Int[]
        [1;94m15 | [0m  bs    B[]   @relation(fields: [b_ids], [1;91mreferences: [u2][0m)
        [1;94m   | [0m
        [1;91merror[0m: [1mError parsing attribute "@relation": The `references` argument must point to a singular `id` field[0m
          [1;94m-->[0m  [4mschema.prisma:22[0m
        [1;94m   | [0m
        [1;94m21 | [0m  a_ids Int[]
        [1;94m22 | [0m  as    A[]   @relation(fields: [a_ids], [1;91mreferences: [u1][0m)
        [1;94m   | [0m
    "#]];

    let dml = with_header(dml, Provider::Mongo, &[]);
    expect.assert_eq(&parse_unwrap_err(&dml));
}