import "conditional_import.dart"
    if (dart.library.io) "dart:io"
    if (dart.library.html) "dart:html" as a;
import "conditional_import.dart"
    if (dart.library.html) "dart:html"
    if (dart.library.io) "dart:io" as b;
import "conditional_import.dart" if (dart.library.foo) "dart:foo" as c;

class HttpRequest {}

testA(a.HttpRequest request) {}
testB(b.HttpRequest request) {}
testC(c.HttpRequest request) {}
void main() {}
expect(expected, actual) {}
