blob: 427e319ac640600d3a0e3779832986160c054920 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:21:20: Error: Can't implement 'I' because it's marked with '?'.
// enum E3 implements I? { // Error.
// ^^
//
// pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:16:6: Error: The non-abstract class 'E2' is missing implementations for these members:
// - I.foo
// Try to either
// - provide an implementation,
// - inherit an implementation from a superclass or mixin,
// - mark the class as abstract, or
// - provide a 'noSuchMethod' implementation.
//
// enum E2 implements I { // Error.
// ^^
// pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:6:8: Context: 'I.foo' is defined here.
// void foo();
// ^^^
//
// pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:41:7: Error: The argument type 'E4' can't be assigned to the parameter type 'I'.
// - 'E4' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'.
// - 'I' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'.
// bar(e4); // Error.
// ^
//
import self as self;
import "dart:core" as core;
abstract class I extends core::Object {
synthetic constructor •() self::I
: super core::Object::•()
;
abstract method foo() void;
}
class E1 extends core::_Enum implements self::I /*isEnum*/ {
static const field core::List<self::E1> values = #C7;
static const field self::E1 one = #C3;
static const field self::E1 two = #C6;
const constructor •(core::int #index, core::String #name) → self::E1
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E1.${this.{core::_Enum::_name}{core::String}}";
method foo() void {}
}
class E2 extends core::_Enum implements self::I /*isEnum*/ {
static const field core::List<self::E2> values = #C10;
static const field self::E2 one = #C8;
static const field self::E2 two = #C9;
const constructor •(core::int #index, core::String #name) → self::E2
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E2.${this.{core::_Enum::_name}{core::String}}";
}
class E3 extends core::_Enum implements self::I /*isEnum*/ {
static const field core::List<self::E3> values = #C13;
static const field self::E3 one = #C11;
static const field self::E3 two = #C12;
const constructor •(core::int #index, core::String #name) → self::E3
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E3.${this.{core::_Enum::_name}{core::String}}";
method foo() void {}
}
class E4 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E4> values = #C16;
static const field self::E4 one = #C14;
static const field self::E4 two = #C15;
const constructor •(core::int #index, core::String #name) → self::E4
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E4.${this.{core::_Enum::_name}{core::String}}";
method foo() void {}
}
static method bar(self::I i) dynamic {}
static method test(self::E1 e1, self::E2 e2, self::E3 e3, self::E4 e4) dynamic {
self::bar(e1);
self::bar(e2);
self::bar(e3);
self::bar(invalid-expression "pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:41:7: Error: The argument type 'E4' can't be assigned to the parameter type 'I'.
- 'E4' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'.
- 'I' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'.
bar(e4); // Error.
^" in e4 as{TypeError,ForNonNullableByDefault} self::I);
}
static method main() dynamic {}
constants {
#C1 = 0
#C2 = "one"
#C3 = self::E1 {index:#C1, _name:#C2}
#C4 = 1
#C5 = "two"
#C6 = self::E1 {index:#C4, _name:#C5}
#C7 = <self::E1*>[#C3, #C6]
#C8 = self::E2 {index:#C1, _name:#C2}
#C9 = self::E2 {index:#C4, _name:#C5}
#C10 = <self::E2*>[#C8, #C9]
#C11 = self::E3 {index:#C1, _name:#C2}
#C12 = self::E3 {index:#C4, _name:#C5}
#C13 = <self::E3*>[#C11, #C12]
#C14 = self::E4 {index:#C1, _name:#C2}
#C15 = self::E4 {index:#C4, _name:#C5}
#C16 = <self::E4*>[#C14, #C15]
}
Constructor coverage from constants:
org-dartlang-testcase:///simple_interfaces.dart:
- E1. (from org-dartlang-testcase:///simple_interfaces.dart:9:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- E2. (from org-dartlang-testcase:///simple_interfaces.dart:16:6)
- E3. (from org-dartlang-testcase:///simple_interfaces.dart:21:6)
- E4. (from org-dartlang-testcase:///simple_interfaces.dart:28:6)