blob: 101c651bfb1f17b05dbd66fdbafc636dfda34ebb [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:6:11: Error: This extension member conflicts with Object member 'noSuchMethod'.
// int get noSuchMethod => 42;
// ^^^^^^^^^^^^
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:8:7: Error: This extension member conflicts with Object member 'runtimeType'.
// int runtimeType() {}
// ^^^^^^^^^^^
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:9:12: Error: This extension member conflicts with Object member '=='.
// operator ==(other) => false;
// ^^
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:10:17: Error: This extension member conflicts with Object member 'toString'.
// static String toString() => 'Foo';
// ^^^^^^^^
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:7:12: Error: This extension member conflicts with Object member 'hashCode'.
// void set hashCode(int value) {}
// ^^^^^^^^
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:27:14: Error: A value of type 'dynamic Function(Invocation)' can't be assigned to a variable of type 'int'.
// - 'Invocation' is from 'dart:core'.
// value = "".noSuchMethod;
// ^
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:28:6: Error: The setter 'hashCode' isn't defined for the class 'String'.
// Try correcting the name to the name of an existing setter, or defining a setter or field named 'hashCode'.
// "".hashCode = 42;
// ^^^^^^^^
//
// pkg/front_end/testcases/extensions/conflict_with_object.dart:29:14: Error: A value of type 'Type' can't be assigned to a variable of type 'int'.
// - 'Type' is from 'dart:core'.
// value = "".runtimeType;
// ^
//
import self as self;
import "dart:core" as core;
extension Extension on core::String* {
get noSuchMethod = self::Extension|get#noSuchMethod;
method runtimeType = self::Extension|runtimeType;
tearoff runtimeType = self::Extension|get#runtimeType;
operator == = self::Extension|==;
static method toString = self::Extension|toString;
set hashCode = self::Extension|set#hashCode;
}
static method Extension|get#noSuchMethod(lowered final core::String* #this) → core::int*
return 42;
static method Extension|set#hashCode(lowered final core::String* #this, core::int* value) → void {}
static method Extension|runtimeType(lowered final core::String* #this) → core::int* {}
static method Extension|get#runtimeType(lowered final core::String* #this) → () →* core::int*
return () core::int* => self::Extension|runtimeType(#this);
static method Extension|==(lowered final core::String* #this, dynamic other) → dynamic
return false;
static method Extension|toString() core::String*
return "Foo";
static method main() dynamic {
core::int* value;
self::expect(true, "".{core::Object::noSuchMethod}{(core::Invocation*) →* dynamic} is core::Function*);
value = self::Extension|get#noSuchMethod("");
self::Extension|set#hashCode("", 42);
self::expect(true, "".{core::Object::runtimeType}{core::Type*} is core::Type*);
self::expect(true, self::Extension|get#runtimeType("") is core::Function*);
value = self::Extension|runtimeType("");
self::expect(true, "" =={core::String::==}{(core::Object*) →* core::bool*} "");
self::expect("Foo", self::Extension|toString());
}
static method errors() dynamic {
core::int* value;
value = invalid-expression "pkg/front_end/testcases/extensions/conflict_with_object.dart:27:14: Error: A value of type 'dynamic Function(Invocation)' can't be assigned to a variable of type 'int'.
- 'Invocation' is from 'dart:core'.
value = \"\".noSuchMethod;
^" in "".{core::Object::noSuchMethod}{(core::Invocation*) →* dynamic} as{TypeError} core::int*;
invalid-expression "pkg/front_end/testcases/extensions/conflict_with_object.dart:28:6: Error: The setter 'hashCode' isn't defined for the class 'String'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'hashCode'.
\"\".hashCode = 42;
^^^^^^^^" in ""{<unresolved>}.hashCode = 42;
value = invalid-expression "pkg/front_end/testcases/extensions/conflict_with_object.dart:29:14: Error: A value of type 'Type' can't be assigned to a variable of type 'int'.
- 'Type' is from 'dart:core'.
value = \"\".runtimeType;
^" in "".{core::Object::runtimeType}{core::Type*} as{TypeError} core::int*;
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual)) {
throw "Mismatch: expected=${expected}, actual=${actual}";
}
}