Files
sdk/pkg/front_end/testcases/patterns/object_pattern_errors.dart.strong.expect
T
Johnni Winther 6480e28d5a [cfe] Don't check length on List/Map only containing a rest pattern
Includes a fix for matched value type being invalid, encountered
during development.

Closes #51770

Change-Id: I0c960eaef528f16789e8d9a42340e50f05326cf7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289602
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2023-03-21 08:39:38 +00:00

76 lines
2.2 KiB
Plaintext

library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/object_pattern_errors.dart:12:14: Error: Expected 0 type arguments.
// if (x case A<int>()) {} // Error.
// ^
//
// pkg/front_end/testcases/patterns/object_pattern_errors.dart:15:14: Error: Expected 1 type arguments.
// if (x case B<String, num>()) {} // Error.
// ^
//
// pkg/front_end/testcases/patterns/object_pattern_errors.dart:16:16: Error: The getter name is not specified explicitly, and the pattern is not a variable. Try specifying the getter name explicitly, or using a variable pattern.
// if (x case A(: 5)) {} // Error
// ^
//
// pkg/front_end/testcases/patterns/object_pattern_errors.dart:17:16: Error: A pattern field in an object pattern must be named.
// Try adding a pattern name or ':' before the pattern.
// if (x case A(5)) {} // Error
// ^
//
// pkg/front_end/testcases/patterns/object_pattern_errors.dart:18:20: Error: A pattern field in an object pattern must be named.
// Try adding a pattern name or ':' before the pattern.
// if (x case A(var a)) {} // Error
// ^
//
import self as self;
import "dart:core" as core;
typedef B<unrelated X extends core::Object? = dynamic> = self::A;
class A extends core::Object {
field core::int? field = null;
synthetic constructor •() → self::A
: super core::Object::•()
;
}
static method test(dynamic x) → dynamic {
{
final synthesized dynamic #0#0 = x;
if(#0#0 is{ForNonNullableByDefault} invalid-type) {
}
}
{
final synthesized invalid-type #1#0 = x{invalid-type};
if(#1#0 is{ForNonNullableByDefault} self::A) {
}
}
{
final synthesized self::A #2#0 = x{self::A};
if(true) {
}
}
{
final synthesized self::A #3#0 = x{self::A};
if(true) {
}
}
{
final synthesized invalid-type #4#0 = x{invalid-type};
if(#4#0 is{ForNonNullableByDefault} self::A) {
}
}
{
final synthesized self::A #5#0 = x{self::A};
if(true) {
}
}
{
final synthesized self::A #6#0 = x{self::A};
if(true) {
}
}
}
static method _#B#new#tearOff<unrelated X extends core::Object? = dynamic>() → self::A
return new self::A::•();