// SERVER-6177: better error when projecting into a subfield with an existing expression

// load the test utilities
load('jstests/aggregation/extras/utils.js');

var c = db.c;
c.drop();

c.save({});

// These currently give different errors
assertErrorCode(c, {$project: {'x': {$add: [1]}, 'x.b': 1}}, 16401);
assertErrorCode(c, {$project: {'x.b': 1, 'x': {$add: [1]}}}, 16400);

// These both give the same error however
assertErrorCode(c, {$project: {'x': {'b': 1}, 'x.b': 1}}, 16400);
assertErrorCode(c, {$project: {'x.b': 1, 'x': {'b': 1}}}, 16400);
