@@ -1278,34 +1278,30 @@ class InferenceVisitor extends BodyVisitor1<void, DartType> {
12781278 assert ((node.keyType is ImplicitTypeArgument ) ==
12791279 (node.valueType is ImplicitTypeArgument ));
12801280 bool inferenceNeeded = node.keyType is ImplicitTypeArgument ;
1281- KernelLibraryBuilder library = inferrer.library;
12821281 bool typeContextIsMap = node.keyType is ! ImplicitTypeArgument ;
12831282 bool typeContextIsIterable = false ;
1284- if (! inferrer.isTopLevel) {
1285- if (library.loader.target.enableSetLiterals && inferenceNeeded) {
1286- // Ambiguous set/map literal
1287- DartType context =
1288- inferrer.typeSchemaEnvironment.unfutureType (typeContext);
1289- if (context is InterfaceType ) {
1290- typeContextIsMap = typeContextIsMap ||
1291- inferrer.classHierarchy
1292- .isSubtypeOf (context.classNode, inferrer.coreTypes.mapClass);
1293- typeContextIsIterable = typeContextIsIterable ||
1294- inferrer.classHierarchy.isSubtypeOf (
1295- context.classNode, inferrer.coreTypes.iterableClass);
1296- if (node.entries.isEmpty &&
1297- typeContextIsIterable &&
1298- ! typeContextIsMap) {
1299- // Set literal
1300- SetLiteralJudgment setLiteral = new SetLiteralJudgment ([],
1301- typeArgument: const ImplicitTypeArgument (),
1302- isConst: node.isConst)
1303- ..fileOffset = node.fileOffset;
1304- node.parent.replaceChild (node, setLiteral);
1305- visitSetLiteralJudgment (setLiteral, typeContext);
1306- node.inferredType = setLiteral.inferredType;
1307- return ;
1308- }
1283+ if (! inferrer.isTopLevel && inferenceNeeded) {
1284+ // Ambiguous set/map literal
1285+ DartType context =
1286+ inferrer.typeSchemaEnvironment.unfutureType (typeContext);
1287+ if (context is InterfaceType ) {
1288+ typeContextIsMap = typeContextIsMap ||
1289+ inferrer.classHierarchy
1290+ .isSubtypeOf (context.classNode, inferrer.coreTypes.mapClass);
1291+ typeContextIsIterable = typeContextIsIterable ||
1292+ inferrer.classHierarchy.isSubtypeOf (
1293+ context.classNode, inferrer.coreTypes.iterableClass);
1294+ if (node.entries.isEmpty &&
1295+ typeContextIsIterable &&
1296+ ! typeContextIsMap) {
1297+ // Set literal
1298+ SetLiteralJudgment setLiteral = new SetLiteralJudgment ([],
1299+ typeArgument: const ImplicitTypeArgument (), isConst: node.isConst)
1300+ ..fileOffset = node.fileOffset;
1301+ node.parent.replaceChild (node, setLiteral);
1302+ visitSetLiteralJudgment (setLiteral, typeContext);
1303+ node.inferredType = setLiteral.inferredType;
1304+ return ;
13091305 }
13101306 }
13111307 }
0 commit comments