conditional-uri-does-not-exist
Same as conditional_uri_does_not_exist in Dart lints
- Group
- Style
- Path
lint/style/conditional-uri-does-not-exist- Default
- On (recommended)
- Origin
- Dart lints
- Rule
- 208 of 512
Require the targets of conditional import and export URIs to exist.
Every
configurable URI (if (dart.library.io) 'io_impl.dart') on an import or
export is resolved as the analyzer resolves it, and reported when it
names no existing source:
- A relative URI resolves against the URI of the containing file: its
package:URI inside a package'slib/directory, so climbing out oflib/names another package, else itsfile:URI. - A
package:URI resolves through the package configuration. Without one, everypackage:URI is reported. A query is ignored; a fragment, an unknown package, or a missing path segment is reported. - A
file:URI needs an absolute path; its authority is ignored. A query or fragment (including on a relative URI resolved tofile:) names no file. - A
dart:URI must name a library of the SDK (with its embedder); without a located SDK only invalid paths, queries and fragments are reported. - Any other scheme is reported.
Invalid schemes and invalid percent escapes still name missing sources; invalid percent escapes are interpreted as literal percent signs. The default (unconditional) URI is not checked by this rule. Package and SDK metadata come from the run's shared analysis environment; callers must attach it to resolve configured package sources.
Invalid
import 'targets/stub.dart'
if (dart.library.io) 'targets/missing_io.dart'
if (dart.library.js_interop) 'targets/web.dart';
import 'targets/stub.dart'
if (dart.library.io) 'targets/io.dart'
if (dart.library.js_interop) 'targets/missing_web.dart'
if (dart.library.html) 'missing_html.dart'
as second;
import 'targets/stub.dart'
if (app.flavor == 'prod') 'targets/prod.dart'
as third;
export 'targets/stub.dart'
if (dart.library.io) 'targets/missing_export.dart';
import 'targets/stub.dart'
if (dart.library.io) "targets/io"
if (dart.library.ffi) r'targets/raw_missing.dart'
as fourth;
void main() {}import 'targets/stub.dart' if (dart.library.io) 'targets/missing_io.dart' if (dart.library.io) 'targets/io.dart' if (dart.library.js_interop) 'targets/missing_web.dart' if (dart.library.js_interop) 'targets/missing_web.dart' if (dart.library.html) 'missing_html.dart'import 'targets/stub.dart' if (app.flavor == 'prod') 'targets/prod.dart'export 'targets/stub.dart' if (dart.library.io) 'targets/missing_export.dart';import 'targets/stub.dart' if (dart.library.io) "targets/io" if (dart.library.io) "targets/io" if (dart.library.ffi) r'targets/raw_missing.dart'Valid
import 'targets/stub.dart'
if (dart.library.io) 'targets/io.dart'
if (dart.library.js_interop) 'targets/web.dart';
import 'targets/stub.dart'
if (dart.library.io) './targets/io.dart'
as second;
export 'targets/stub.dart'
if (dart.library.js_interop) 'targets/web.dart';
// SDK libraries remain unknown without an SDK. The local package configuration
// maps package:web to the declaration targets in this fixture.
import 'targets/stub.dart'
if (dart.library.io) 'dart:io'
if (dart.library.js_interop) 'package:web/web.dart'
as third;
// A missing default URI is the analyzer's uri_does_not_exist, not this rule.
import 'targets/missing_default.dart' as fourth;
void main() {}Configure conditional-uri-does-not-exist
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"style": {
"conditional-uri-does-not-exist": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/style/conditional-uri-does-not-exist: <reason>More style rules
- constant-identifier-names
constant_identifier_namesrecommendedFlags constant identifiers that are not lowerCamelCase.
- curly-braces-in-flow-control-structures
curly_braces_in_flow_control_structuresrecommendedRequires curly braces around the bodies of flow-control statements.
- dangling-library-doc-comments
dangling_library_doc_commentsrecommendedAttach library documentation to an explicit
librarydirective. - deprecated-consistency
deprecated_consistencyrecommendedFlags deprecations that are not carried through to related declarations.
- directives-ordering
directives_orderingFlags import and export directives that break the Effective Dart ordering.
- do-not-use-environment
do_not_use_environmentDisallow reading compilation environment declarations, including type aliases.
- double-literal-format
double-literal-formatFlags double literals written with redundant or missing digits.
- empty-constructor-bodies
empty_constructor_bodiesrecommendedFlags constructors with an empty block body
{}.