/*
 * Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
 * for details. All rights reserved. Use of this source code is governed by a
 * BSD-style license that can be found in the LICENSE file.
 */
/**
 * @assertion To infer the type of element:
 *
 * If element is an expressionElement with expression e1:
 * ...
 * If P is Set<Ps> then the inferred set element type of element is the inferred
 * type of the expression e1 in context Ps.
 *
 * @description Checks that if P is Set<Ps> then the inferred set element type
 * of element is the inferred type of the expression e1 in context Ps.
 *
 * See Issue 43139 evaluation: With null safety, doing 1 + x in a double context
 * will figure out that the only way int + something is going to be a double is
 * if the something is a double, so it will give x a context type of double.
 * Then double x = 1 + 1; will convert the latter 1 to a double literal, and the
 * result becomes a double. So, there is not compile error here with nnbd, and
 * it's a compile error without nnbd.
 * @Issue 43139
 * @author sgrekhov@unipro.ru
 */
main() {
  Set<double> x = {1 + 1};
}
