blob: 043d366cf36a66d5682675291f661af9921161a5 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/const_constructor.dart:16:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// const Class.named(42); // Error
// ^^^^^
//
// pkg/front_end/testcases/extension_types/const_constructor.dart:17:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// const Class.fact(87); // Error
// ^^^^^
//
// pkg/front_end/testcases/extension_types/const_constructor.dart:18:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// const Class.redirect2(87); // Error
// ^^^^^
//
import self as self;
import "dart:core" as core;
extension type Class(core::int i) {
abstract extension-type-member representation-field get i() core::int;
constructor = self::Class|constructor#;
constructor tearoff = self::Class|constructor#_#new#tearOff;
constructor named = self::Class|constructor#named;
constructor tearoff named = self::Class|constructor#_#named#tearOff;
static redirecting-factory redirect = self::Class|constructor#redirect;
static redirecting-factory tearoff redirect = self::Class|constructor#_#redirect#tearOff;
static factory fact = self::Class|constructor#fact;
static factory tearoff fact = self::Class|constructor#_#fact#tearOff;
static redirecting-factory redirect2 = self::Class|constructor#redirect2;
static redirecting-factory tearoff redirect2 = self::Class|constructor#_#redirect2#tearOff;
}
static extension-type-member method Class|constructor#(core::int i) → self::Class% /* erasure=core::int, declared=! */ {
lowered final self::Class% /* erasure=core::int, declared=! */ #this = i;
return #this;
}
static extension-type-member method Class|constructor#_#new#tearOff(core::int i) → self::Class% /* erasure=core::int, declared=! */
return self::Class|constructor#(i);
static extension-type-member method Class|constructor#named(core::int i) → self::Class% /* erasure=core::int, declared=! */ {
lowered final self::Class% /* erasure=core::int, declared=! */ #this = i;
return #this;
}
static extension-type-member method Class|constructor#_#named#tearOff(core::int i) → self::Class% /* erasure=core::int, declared=! */
return self::Class|constructor#named(i);
static extension-type-member method Class|constructor#redirect(core::int i) → self::Class% /* erasure=core::int, declared=! */ /* redirection-target: self::Class|constructor# */
return self::Class|constructor#(i);
static extension-type-member method Class|constructor#_#redirect#tearOff(core::int i) → self::Class% /* erasure=core::int, declared=! */
return self::Class|constructor#(i);
static extension-type-member method Class|constructor#fact(core::int i) → self::Class% /* erasure=core::int, declared=! */
return self::Class|constructor#(i);
static extension-type-member method Class|constructor#_#fact#tearOff(core::int i) → self::Class% /* erasure=core::int, declared=! */
return self::Class|constructor#fact(i);
static extension-type-member method Class|constructor#redirect2(core::int i) → self::Class% /* erasure=core::int, declared=! */ /* redirection-target: self::Class|constructor# */
return self::Class|constructor#(i);
static extension-type-member method Class|constructor#_#redirect2#tearOff(core::int i) → self::Class% /* erasure=core::int, declared=! */
return self::Class|constructor#(i);
static method test() dynamic {
invalid-expression "pkg/front_end/testcases/extension_types/const_constructor.dart:16:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
const Class.named(42); // Error
^^^^^";
invalid-expression "pkg/front_end/testcases/extension_types/const_constructor.dart:17:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
const Class.fact(87); // Error
^^^^^";
invalid-expression "pkg/front_end/testcases/extension_types/const_constructor.dart:18:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
const Class.redirect2(87); // Error
^^^^^";
}
static method main() dynamic {
self::expect(42, #C1);
self::expect(87, #C2);
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
constants {
#C1 = 42
#C2 = 87
}