dart-sdk/tests/language
Johnni Winther 41d2d8d5a4 [analyzer,cfe] Support contained types in as-pattern
This adds a new rule to exhaustiveness handling of the as-pattern. The
new rule checks whether the cast type is fully contained in the space
of the subpattern. If so, we can assume that the whole context type has
been matched because there is no value that passes the as-test that
would be rejected by the subpattern.

Closes #51986
Closes #54125

Change-Id: I0dc7fb072395aa3bc9f0b143afb320966f9d64c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/338760
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-12-20 09:05:26 +00:00
..
abstract Migrate "a" directory language tests off @compile-error. 2023-04-20 20:50:39 +00:00
accessor_conflict
argument [analyzer] NOT_ENOUGH_POSITIONAL_ARGUMENTS 2022-10-11 17:56:11 +00:00
assert [dart2wasm] Emit code for assert initializers. 2023-01-05 00:23:40 +00:00
assign [analyzer] Issue 37238: Multiple errors for type mismatch assignments. 2023-05-19 16:27:58 +00:00
async [vm] Adjust return value of async/async*/sync* after the language spec change 2023-12-19 16:14:39 +00:00
async_nested
async_star [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
await [tests] Avoid small --optimization-counter-threshold in tests 2022-10-10 21:04:18 +00:00
bool [tests] Fix language/bool/has_environment_not_new 2023-11-28 12:50:05 +00:00
call Clean up a number of 2.19 opt outs in language tests. 2023-03-17 16:17:50 +00:00
canonicalize Spelling tests language 2022-12-19 16:30:06 +00:00
cascade Remove nbsp 2022-10-17 08:18:49 +00:00
class Remove left-over patch declarations for List constructor. 2023-04-22 00:38:28 +00:00
class_modifiers Breaking changes for analyzer version 6.0.0 2023-06-16 16:31:27 +00:00
closure [dart2js] Fix language/closure/minify_closure_variable_collision_test 2023-11-29 19:51:42 +00:00
compile_time_constant [analyzer] Separate exception and evaluation errors in the const evaluator. 2023-08-22 18:21:10 +00:00
const [analyzer] Report cycles in constant constructors. 2023-08-29 19:02:38 +00:00
const_functions [cfe] Error on variable use before declaration, not on declaration 2023-10-03 10:51:15 +00:00
constants_2018 [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
constructor Reland "[dart2wasm] Replace struct.new_default with struct.new for object allocation." 2023-09-26 10:07:42 +00:00
control_flow_collections [web-fixit] Avoid a few tests in production mode 2023-11-29 21:28:58 +00:00
covariant [web-fixit] Don't test covariance checks in production mode 2023-11-29 21:19:49 +00:00
covariant_override Clean up a number of 2.19 opt outs in language tests. 2023-03-17 16:17:50 +00:00
deferred [cfe] Report errors on deferred types in extends/with/implements clauses 2023-12-05 13:21:12 +00:00
double [web-fixit] Codify web number difference for language/double/identical_test 2023-12-06 19:01:22 +00:00
double_literals
dynamic [dart2wasm] Fix invocation forwarder named argument adjustment 2023-01-10 13:37:33 +00:00
enum [flip-modifiers] opt out from class modifiers some failing front end language tests 2023-03-02 20:40:20 +00:00
exception Migrate "e" and "f" directory language tests off @compile-error. 2023-04-20 20:49:17 +00:00
export Migrate "e" and "f" directory language tests off @compile-error. 2023-04-20 20:49:17 +00:00
extension_methods Fix typos 2022-06-10 15:48:54 +00:00
extension_type [cfe] Report errors on primary constructors 2023-12-19 21:13:49 +00:00
external_abstract_fields [cfe] Implemenet abstract fields errors 2020-07-20 12:05:54 +00:00
factory Fix incorrect file reference in license headers 2023-09-18 06:44:08 +00:00
field Migrate "e" and "f" directory language tests off @compile-error. 2023-04-20 20:49:17 +00:00
final [analyzer] Issue 53927: Disallow final fields to be used in a const context. 2023-11-02 20:46:20 +00:00
function [web-fixit] Make remaining tests under language/function pass on dart2js production mode 2023-12-07 18:04:50 +00:00
function_subtype [tests] Fix some tests for web numbers and dart2js production mode 2023-10-27 01:16:28 +00:00
function_type [tests] Migrate language/function_type/test_generator.dart 2023-11-01 18:04:19 +00:00
generic [web-fixit] Make generic/mixin language tests minification-agnostic 2023-11-29 21:40:21 +00:00
generic_methods Fix tearoff of methods from promotable variables. 2023-04-03 19:39:59 +00:00
getter Migrate "g" - "i" directory language tests off @compile-error. 2023-04-19 22:09:18 +00:00
identifier [cfe] Remove extra conditions on await-for in non-async body check 2023-05-09 06:56:44 +00:00
identity [tests] Fix some tests for web numbers and dart2js production mode 2023-10-27 01:16:28 +00:00
if
if_null Issue 48004. Report when null-aware operator is used on type. 2022-05-29 19:03:15 +00:00
implicit_creation [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
implicit_downcast_during Reland "Flow analysis: promote to non-nullable on initialization" 2020-10-07 13:14:55 +00:00
import [tests] Update two conditional import tests 2023-11-28 14:27:39 +00:00
inference Migrate "g" - "i" directory language tests off @compile-error. 2023-04-19 22:09:18 +00:00
inference_update_1 Retire experiment flags introduced in 2.18. 2022-12-15 13:18:50 +00:00
inference_update_2 Rework inference_update_2 tests using expectStaticType. 2023-12-14 14:00:35 +00:00
inference_update_3 inference-update-3: use unpromoted type as context for local variable assignments. 2023-12-07 23:30:06 +00:00
initializing_formal Migrate "g" - "i" directory language tests off @compile-error. 2023-04-19 22:09:18 +00:00
instance [cfe] Add UnresolvedKind for fine grained unresolved reporting 2021-08-25 09:51:54 +00:00
instantiate_to_bound master branch to main 2021-09-15 06:22:23 +00:00
interceptor
interface Remove left-over patch declarations for List constructor. 2023-04-22 00:38:28 +00:00
invalid_returns Restore mixed-mode language tests. 2023-12-19 13:50:18 +00:00
is Issue 51323. Don't parse RecordLiteral(s) before language 3.0 2023-05-26 18:22:34 +00:00
label [parser] Add beforeSynthetic to SyntheticStringToken 2021-08-30 11:56:30 +00:00
lazy Spelling tests 2023-01-19 16:24:29 +00:00
least_upper_bound Correct 4 static type expectations in test 2023-11-27 10:38:31 +00:00
library Spelling tests language 2022-12-19 16:30:06 +00:00
list [parser] More specific error messages when recovering new/const/Map/Set/List with said literals 2021-03-25 13:27:03 +00:00
loop [cfe] Error on variable use before declaration, not on declaration 2023-10-03 10:51:15 +00:00
macros/introspect [macros] Add first language tests for introspection. 2023-12-19 09:56:46 +00:00
main [cfe] Support injected members in export scope 2023-05-24 09:21:20 +00:00
malbounded Migrate "l" and "m" directory language tests off @compile-error. 2023-04-20 17:51:42 +00:00
malformed Migrate "l" and "m" directory language tests off @compile-error. 2023-04-20 17:51:42 +00:00
map [dart2js] Better const Maps and Sets 2023-06-20 23:44:08 +00:00
metadata [analyzer] Report more specific diagnostic codes instead of INVALID_CONSTANT. 2023-08-29 22:36:02 +00:00
method [analyzer] Change the const evaluation result of variables to be Constant. 2023-09-22 16:13:10 +00:00
mixin [web-fixit] Make generic/mixin language tests minification-agnostic 2023-11-29 21:40:21 +00:00
mixin_constructor_forwarding Set tests that have mixin errors as 2.19. 2023-03-01 15:03:39 +00:00
mixin_declaration Migrate "l" and "m" directory language tests off @compile-error. 2023-04-20 17:51:42 +00:00
mixin_legacy [web-fixit] Make generic/mixin language tests minification-agnostic 2023-11-29 21:40:21 +00:00
named_arguments_anywhere [analyzer] Initial refactor of _InstanceCreationEvaluator to return Constant value. 2023-07-25 19:23:02 +00:00
new [cfe] Add UnresolvedKind for fine grained unresolved reporting 2021-08-25 09:51:54 +00:00
nnbd Restore mixed-mode language tests. 2023-12-19 13:50:18 +00:00
no_such_method Migrate "n" through "p" directory language tests off @compile-error. 2023-04-20 17:56:18 +00:00
nonfunction_type_aliases Restore mixed-mode language tests. 2023-12-19 13:50:18 +00:00
nosuchmethod_forwarding Remove uses of : as default value separator in some tests/ directories. 2022-09-07 14:49:17 +00:00
null [flip-modifiers] opt out from class modifiers some failing front end language tests 2023-03-02 20:40:20 +00:00
null_aware Flag additional code as unreachable due to types Null and Never. 2022-08-22 16:50:19 +00:00
number [tests] Update some tests for web numbers 2023-11-02 19:30:11 +00:00
operator [tests] Update some tests for web numbers 2023-11-02 19:30:11 +00:00
optimize Migrate "n" through "p" directory language tests off @compile-error. 2023-04-20 17:56:18 +00:00
override Move codes from StaticTypeWarningCode into CompileTimeErrorCode. 2020-07-27 16:44:15 +00:00
parameter [cfe] Correct PrivateNamedParameter problem message 2023-12-01 17:32:48 +00:00
part [cfe] Include import paths in error for unavailable dart: libraries 2022-11-08 14:54:17 +00:00
patterns [analyzer,cfe] Support contained types in as-pattern 2023-12-20 09:05:26 +00:00
prefix [cfe] Add UnresolvedKind for fine grained unresolved reporting 2021-08-25 09:51:54 +00:00
private pre-emptively fix some tests for class modifiers flag flip 2023-03-01 20:11:25 +00:00
propagate
records [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
redirecting Remove uses of : as default value separator in some tests/ directories. 2022-09-07 14:49:17 +00:00
reg_exp
regress [cfe] Report cyclic dependency on declaration, not on type variable 2023-12-07 13:21:29 +00:00
resolution
return Migrate "r" directory language tests off @compile-error. 2023-04-19 23:35:16 +00:00
rewrite Move codes from StaticTypeWarningCode into CompileTimeErrorCode. 2020-07-27 16:44:15 +00:00
scaling [vm] Increase supported range of TypeParameters to 16 bits. 2022-12-14 23:34:18 +00:00
script Migrate "s" directory language tests off @compile-error. 2023-04-20 17:59:44 +00:00
sealed_class Breaking changes for analyzer version 6.0.0 2023-06-16 16:31:27 +00:00
set_literals [tests] Add const-big-set-literal test 2020-10-20 11:07:23 +00:00
setter Migrate "s" directory language tests off @compile-error. 2023-04-20 17:59:44 +00:00
spread_collections Front end: Fix follow-on error arising from ill-typed spread element. 2021-03-04 15:52:57 +00:00
stack_trace [tests, dart2js] Make stack-trace tests work on dart2js 2023-10-26 21:53:29 +00:00
static Migrate "s" directory language tests off @compile-error. 2023-04-20 17:59:44 +00:00
string Restore mixed-mode language tests. 2023-12-19 13:50:18 +00:00
subtyping_static [dart2wasm] Fix isSubtype case of type parameter vs FutureOr 2023-08-11 09:08:32 +00:00
super Migrate "s" directory language tests off @compile-error. 2023-04-20 17:59:44 +00:00
superinterface_variance Set tests that have mixin errors as 2.19. 2023-03-01 15:03:39 +00:00
switch [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
symbol Move codes from StaticTypeWarningCode into CompileTimeErrorCode. 2020-07-27 16:44:15 +00:00
sync_star Test for yield* of Iterable with throwing get:iterator 2023-04-14 22:04:28 +00:00
syntax [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
this [tests, dart2js] Make test conditional on dart2js mode 2023-10-26 17:18:28 +00:00
top_level Migrate "t" directory language tests off @compile-error. 2023-04-20 19:55:31 +00:00
type [analyzer] Separate exception and evaluation errors in the const evaluator. 2023-08-22 18:21:10 +00:00
type_object Restore mixed-mode language tests. 2023-12-19 13:50:18 +00:00
type_promotion Move codes from StaticTypeWarningCode into CompileTimeErrorCode. 2020-07-27 16:44:15 +00:00
type_variable Migrate "t" directory language tests off @compile-error. 2023-04-20 19:55:31 +00:00
typedef Migrate "t" directory language tests off @compile-error. 2023-04-20 19:55:31 +00:00
unsorted [tests] Don't minify language/unsorted/cyclic_type_test for dart2js 2023-10-27 16:47:59 +00:00
value_class [cfe] Add Jenkins SMI hashcode combiner 2020-09-07 12:36:13 +00:00
variable [cfe] Error on variable use before declaration, not on declaration 2023-10-03 10:51:15 +00:00
variance [cfe,analyzer] Share experimental flags for the parser 2022-11-17 11:32:01 +00:00
vm [vm/compiler] Catch non-Smi mask in 32-bit AOT ~/ call replacement. 2023-10-19 12:30:06 +00:00
void Migrate "u" and "v" directory language tests off @compile-error. 2023-04-20 22:33:22 +00:00
why_not_promoted Allow "field promotion" to apply to abstract getters. 2023-12-07 23:40:27 +00:00
await_type_error_test.dart
await_type_test.dart
dynamic_type_helper.dart
explicit_type_instantiation_parsing_test.dart Remove references to constructor-tearoff experiment. 2021-11-11 14:04:43 +00:00
language.status [test] Update language/vm/type_cast_vm_test for AOT 2023-05-19 19:48:38 +00:00
language_analyzer.status [tests] Cleanup test with absent deferred library 2022-11-03 17:06:42 +00:00
language_dart2js.status [tests] increase timeout for long dart2js test. 2023-11-02 17:22:39 +00:00
language_dart2wasm.status Add "why not promoted" context messages when field promotion fails. 2023-09-27 21:31:49 +00:00
language_dartdevc.status [tests] Mark closure/cycles_test as slow on chrome, skip on firefox. 2023-11-08 18:43:51 +00:00
language_kernel.status Fix web_int_literals_test.dart. 2023-04-25 21:28:39 +00:00
language_precompiled.status [test] Remove ARM64-specific status entries. 2023-10-09 19:30:29 +00:00
language_spec_parser.status Spelling tests language 2022-12-19 16:30:06 +00:00
language_vm.status [test] Remove ARM64-specific status entries. 2023-10-09 19:30:29 +00:00
library1.dart
library2.dart
library10.dart
library11.dart
library12.dart
OWNERS Use OWNERS files to restrict editing of tests/language to language team. 2023-11-16 18:18:00 +00:00
record_literal_problems_test.dart [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
record_literal_test.dart [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
record_type_empty_problems_test.dart [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
record_type_problems_test.dart [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
record_type_test.dart [tests] Remove obsolete Dart 3.0 experiments from language tests 2023-06-15 08:26:27 +00:00
static_type_helper.dart inference-update-3: use unpromoted type as context for local variable assignments. 2023-12-07 23:30:06 +00:00
static_weak_reference_error_test.dart [dart2js] Static weak references to method tearoffs 2023-03-02 20:04:19 +00:00
static_weak_reference_function_apply_test.dart [dart2js] Static weak references to method tearoffs 2023-03-02 20:04:19 +00:00
static_weak_reference_test.dart [dart2js] Static weak references to method tearoffs 2023-03-02 20:04:19 +00:00
syntax_helper.dart Additional language tests for parsing behaviors around type arguments. 2021-05-18 14:06:13 +00:00