blob: 6b8c2c7eaf3856211000bfe56c54c1ad8da5f142 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:8:11: Error: An enum can't declare a non-abstract member named 'hashCode'.
// int get hashCode => 42; // Error.
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:14:14: Error: An enum can't declare a non-abstract member named 'hashCode'.
// String get hashCode => "foo"; // Error.
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:20:13: Error: An enum can't declare a non-abstract member named 'hashCode'.
// final int hashCode = 42; // Error.
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:26:16: Error: An enum can't declare a non-abstract member named 'hashCode'.
// List<String> hashCode() => []; // Error.
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:32:13: Error: An enum can't declare a non-abstract member named 'hashCode'.
// Never get hashCode => throw 42; // Error.
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:38:22: Error: An enum can't declare a non-abstract member named 'hashCode'.
// final int foo = 0, hashCode = 1, bar = 2; // Error.
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:64:18: Error: An enum can't declare a non-abstract member named 'hashCode'.
// static int get hashCode => 42; // Error.
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:26:16: Error: Can't declare a member that conflicts with an inherited one.
// List<String> hashCode() => []; // Error.
// ^^^^^^^^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: This is the inherited member.
// int get hashCode => _getHash(this);
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:64:18: Error: Can't declare a member that conflicts with an inherited one.
// static int get hashCode => 42; // Error.
// ^^^^^^^^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: This is the inherited member.
// int get hashCode => _getHash(this);
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:70:19: Error: Can't declare a member that conflicts with an inherited one.
// static void set hashCode(int value) {} // Error.
// ^^^^^^^^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: This is the inherited member.
// int get hashCode => _getHash(this);
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:74:3: Error: Can't declare a member that conflicts with an inherited one.
// hashCode // Error.
// ^^^^^^^^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: This is the inherited member.
// int get hashCode => _getHash(this);
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:14:14: Error: The return type of the method 'E2.hashCode' is 'String', which does not match the return type, 'int', of the overridden method, 'Object.hashCode'.
// Change to a subtype of 'int'.
// String get hashCode => "foo"; // Error.
// ^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: This is the overridden method ('hashCode').
// int get hashCode => _getHash(this);
// ^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:52:12: Error: The type 'int' of the inherited getter 'Object.hashCode' is not a subtype of the type 'String' of the setter 'E8.hashCode'.
// void set hashCode(String value) {} // Error.
// ^^^^^^^^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: This is the declaration of the getter 'Object.hashCode'.
// int get hashCode => _getHash(this);
// ^^^^^^^^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:58:14: Error: The return type of the method 'E9.hashCode' is 'double', which does not match the return type, 'int', of the overridden method, 'Object.hashCode'.
// Change to a subtype of 'int'.
// double get hashCode; // Error.
// ^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: This is the overridden method ('hashCode').
// int get hashCode => _getHash(this);
// ^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:55:6: Error: The implementation of 'hashCode' in the non-abstract class 'E9' does not conform to its interface.
// enum E9 {
// ^^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: The return type of the method 'Object.hashCode' is 'int', which does not match the return type, 'double', of the overridden method, 'E9.hashCode'.
// Change to a subtype of 'double'.
// int get hashCode => _getHash(this);
// ^
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:58:14: Context: This is the overridden method ('hashCode').
// double get hashCode; // Error.
// ^
//
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:87:6: Error: The implementation of 'hashCode' in the non-abstract class 'E14' does not conform to its interface.
// enum E14 implements I14 { element } // Error.
// ^^^
// sdk/lib/_internal/vm/lib/object_patch.dart:24:11: Context: The return type of the method 'Object.hashCode' is 'int', which does not match the return type, 'Never', of the overridden method, 'I14.hashCode'.
// Change to a subtype of 'Never'.
// int get hashCode => _getHash(this);
// ^
// pkg/front_end/testcases/enhanced_enums/declared_hashcode.dart:84:13: Context: This is the overridden method ('hashCode').
// Never get hashCode;
// ^
//
import self as self;
import "dart:core" as core;
class E1 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E1> values = #C4;
static const field self::E1 element = #C3;
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}}";
get hashCode() core::int
return 42;
}
class E2 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E2> values = #C6;
static const field self::E2 element = #C5;
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}}";
get hashCode() core::String
return "foo";
}
class E3 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E3> values = #C9;
final field core::int hashCode = 42;
static const field self::E3 element = #C8;
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}}";
}
class E4 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E4> values = #C11;
static const field self::E4 element = #C10;
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 hashCode() core::List<core::String>
return <core::String>[];
}
class E5 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E5> values = #C13;
static const field self::E5 element = #C12;
const constructor •(core::int #index, core::String #name) → self::E5
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E5.${this.{core::_Enum::_name}{core::String}}";
get hashCode() Never
return throw 42;
}
class E6 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E6> values = #C17;
final field core::int foo = 0;
final field core::int hashCode = 1;
final field core::int bar = 2;
static const field self::E6 element = #C16;
const constructor •(core::int #index, core::String #name) → self::E6
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E6.${this.{core::_Enum::_name}{core::String}}";
}
class E7 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E7> values = #C19;
static const field self::E7 element = #C18;
const constructor •(core::int #index, core::String #name) → self::E7
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E7.${this.{core::_Enum::_name}{core::String}}";
set hashCode(core::int value) void {}
abstract get hashCode() core::int;
}
class E8 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E8> values = #C21;
static const field self::E8 element = #C20;
const constructor •(core::int #index, core::String #name) → self::E8
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E8.${this.{core::_Enum::_name}{core::String}}";
set hashCode(core::String value) void {}
}
class E9 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E9> values = #C23;
static const field self::E9 element = #C22;
const constructor •(core::int #index, core::String #name) → self::E9
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E9.${this.{core::_Enum::_name}{core::String}}";
abstract get hashCode() core::double;
}
class E10 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E10> values = #C25;
static const field self::E10 element = #C24;
const constructor •(core::int #index, core::String #name) → self::E10
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E10.${this.{core::_Enum::_name}{core::String}}";
static get hashCode() core::int
return 42;
}
class E11 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E11> values = #C27;
static const field self::E11 element = #C26;
const constructor •(core::int #index, core::String #name) → self::E11
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E11.${this.{core::_Enum::_name}{core::String}}";
static set hashCode(core::int value) void {}
}
class E12 extends core::_Enum /*isEnum*/ {
static const field core::List<self::E12> values = #C30;
static const field self::E12 hashCode = #C29;
const constructor •(core::int #index, core::String #name) → self::E12
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E12.${this.{core::_Enum::_name}{core::String}}";
}
abstract class I13 extends core::Object {
synthetic constructor •() self::I13
: super core::Object::•()
;
abstract get hashCode() core::int;
}
class E13 extends core::_Enum implements self::I13 /*isEnum*/ {
static const field core::List<self::E13> values = #C32;
static const field self::E13 element = #C31;
const constructor •(core::int #index, core::String #name) → self::E13
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E13.${this.{core::_Enum::_name}{core::String}}";
}
abstract class I14 extends core::Object {
synthetic constructor •() self::I14
: super core::Object::•()
;
abstract get hashCode() Never;
}
class E14 extends core::_Enum implements self::I14 /*isEnum*/ {
static const field core::List<self::E14> values = #C34;
static const field self::E14 element = #C33;
const constructor •(core::int #index, core::String #name) → self::E14
: super core::_Enum::•(#index, #name)
;
method toString() core::String
return "E14.${this.{core::_Enum::_name}{core::String}}";
abstract member-signature get hashCode() Never; -> self::I14::hashCode
}
static method main() dynamic {}
constants {
#C1 = 0
#C2 = "element"
#C3 = self::E1 {index:#C1, _name:#C2}
#C4 = <self::E1>[#C3]
#C5 = self::E2 {index:#C1, _name:#C2}
#C6 = <self::E2>[#C5]
#C7 = 42
#C8 = self::E3 {hashCode:#C7, index:#C1, _name:#C2}
#C9 = <self::E3>[#C8]
#C10 = self::E4 {index:#C1, _name:#C2}
#C11 = <self::E4>[#C10]
#C12 = self::E5 {index:#C1, _name:#C2}
#C13 = <self::E5>[#C12]
#C14 = 1
#C15 = 2
#C16 = self::E6 {foo:#C1, hashCode:#C14, bar:#C15, index:#C1, _name:#C2}
#C17 = <self::E6>[#C16]
#C18 = self::E7 {index:#C1, _name:#C2}
#C19 = <self::E7>[#C18]
#C20 = self::E8 {index:#C1, _name:#C2}
#C21 = <self::E8>[#C20]
#C22 = self::E9 {index:#C1, _name:#C2}
#C23 = <self::E9>[#C22]
#C24 = self::E10 {index:#C1, _name:#C2}
#C25 = <self::E10>[#C24]
#C26 = self::E11 {index:#C1, _name:#C2}
#C27 = <self::E11>[#C26]
#C28 = "hashCode"
#C29 = self::E12 {index:#C1, _name:#C28}
#C30 = <self::E12>[#C29]
#C31 = self::E13 {index:#C1, _name:#C2}
#C32 = <self::E13>[#C31]
#C33 = self::E14 {index:#C1, _name:#C2}
#C34 = <self::E14>[#C33]
}
Constructor coverage from constants:
org-dartlang-testcase:///declared_hashcode.dart:
- E1. (from org-dartlang-testcase:///declared_hashcode.dart:5: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:///declared_hashcode.dart:11:6)
- E3. (from org-dartlang-testcase:///declared_hashcode.dart:17:6)
- E4. (from org-dartlang-testcase:///declared_hashcode.dart:23:6)
- E5. (from org-dartlang-testcase:///declared_hashcode.dart:29:6)
- E6. (from org-dartlang-testcase:///declared_hashcode.dart:35:6)
- E7. (from org-dartlang-testcase:///declared_hashcode.dart:41:6)
- E8. (from org-dartlang-testcase:///declared_hashcode.dart:49:6)
- E9. (from org-dartlang-testcase:///declared_hashcode.dart:55:6)
- E10. (from org-dartlang-testcase:///declared_hashcode.dart:61:6)
- E11. (from org-dartlang-testcase:///declared_hashcode.dart:67:6)
- E12. (from org-dartlang-testcase:///declared_hashcode.dart:73:6)
- E13. (from org-dartlang-testcase:///declared_hashcode.dart:81:6)
- E14. (from org-dartlang-testcase:///declared_hashcode.dart:87:6)