blob: 0144bcfd8ee428ed24a8130aabd547226cad175d [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/value_class/simple.dart:13:31: Error: No named parameter with the name 'numberOfLegs'.
// Animal firstAnimal = Animal(numberOfLegs: 4);
// ^^^^^^^^^^^^
// pkg/front_end/testcases/value_class/simple.dart:8:7: Context: The class 'Animal' has a constructor that takes no arguments.
// class Animal {
// ^
//
// pkg/front_end/testcases/value_class/simple.dart:14:32: Error: No named parameter with the name 'numberOfLegs'.
// Animal secondAnimal = Animal(numberOfLegs: 4);
// ^^^^^^^^^^^^
// pkg/front_end/testcases/value_class/simple.dart:8:7: Context: The class 'Animal' has a constructor that takes no arguments.
// class Animal {
// ^
//
// pkg/front_end/testcases/value_class/simple.dart:15:31: Error: No named parameter with the name 'numberOfLegs'.
// Animal thirdAnimal = Animal(numberOfLegs: 3);
// ^^^^^^^^^^^^
// pkg/front_end/testcases/value_class/simple.dart:8:7: Context: The class 'Animal' has a constructor that takes no arguments.
// class Animal {
// ^
//
// pkg/front_end/testcases/value_class/simple.dart:9:13: Error: Final field 'numberOfLegs' is not initialized.
// Try to initialize the field in the declaration or in every constructor.
// final int numberOfLegs;
// ^^^^^^^^^^^^
//
import self as self;
import "dart:core" as core;
import "value_class_support_lib.dart" as val;
import "org-dartlang-testcase:///value_class_support_lib.dart";
class Animal extends core::Object {
final field core::int numberOfLegs = null;
synthetic constructor •({required core::int numberOfLegs}) self::Animal
: self::Animal::numberOfLegs = numberOfLegs, super core::Object::•()
;
operator /*isLegacy*/ ==(core::Object other) core::bool
return other is self::Animal && this.{self::Animal::numberOfLegs}{core::int} =={core::num::==}{(core::Object) core::bool} other{self::Animal}.{self::Animal::numberOfLegs}{core::int};
get /*isLegacy*/ hashCode() core::int
return val::JenkinsSmiHash::finish(val::JenkinsSmiHash::combine("org-dartlang-testcase:///simple.dartAnimal".{core::String::hashCode}{core::int}, this.{self::Animal::numberOfLegs}{core::int}.{core::num::hashCode}{core::int}));
method /*isLegacy*/ toString() core::String
return "Animal(numberOfLegs: ${this.{self::Animal::numberOfLegs}{core::int}.{core::int::toString}(){() → core::String}})";
method /*isLegacy*/ copyWith({core::int numberOfLegs}) dynamic
return new self::Animal::•(numberOfLegs: numberOfLegs);
}
static method main() dynamic {
self::Animal firstAnimal = invalid-expression "pkg/front_end/testcases/value_class/simple.dart:13:31: Error: No named parameter with the name 'numberOfLegs'.
Animal firstAnimal = Animal(numberOfLegs: 4);
^^^^^^^^^^^^";
self::Animal secondAnimal = invalid-expression "pkg/front_end/testcases/value_class/simple.dart:14:32: Error: No named parameter with the name 'numberOfLegs'.
Animal secondAnimal = Animal(numberOfLegs: 4);
^^^^^^^^^^^^";
self::Animal thirdAnimal = invalid-expression "pkg/front_end/testcases/value_class/simple.dart:15:31: Error: No named parameter with the name 'numberOfLegs'.
Animal thirdAnimal = Animal(numberOfLegs: 3);
^^^^^^^^^^^^";
self::expect(true, firstAnimal =={core::Object::==}{(core::Object) core::bool} secondAnimal);
self::expect(false, firstAnimal =={core::Object::==}{(core::Object) core::bool} thirdAnimal);
self::expect(true, firstAnimal.{core::Object::hashCode}{core::int} =={core::num::==}{(core::Object) core::bool} secondAnimal.{core::Object::hashCode}{core::int});
self::expect(false, firstAnimal.{core::Object::hashCode}{core::int} =={core::num::==}{(core::Object) core::bool} thirdAnimal.{core::Object::hashCode}{core::int});
}
static method expect(core::Object? expected, core::Object? actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected=${expected}, actual=${actual}";
}
library /*isNonNullableByDefault*/;
import self as val;
import "dart:core" as core;
class JenkinsSmiHash extends core::Object {
synthetic constructor •() val::JenkinsSmiHash
: super core::Object::•()
;
static method combine(core::int hash, core::int value) core::int {
hash = 536870911.{core::int::&}(hash.{core::num::+}(value){(core::num) core::int}){(core::int) core::int};
hash = 536870911.{core::int::&}(hash.{core::num::+}(524287.{core::int::&}(hash){(core::int) core::int}.{core::int::<<}(10){(core::int) core::int}){(core::num) core::int}){(core::int) core::int};
return hash.{core::int::^}(hash.{core::int::>>}(6){(core::int) core::int}){(core::int) core::int};
}
static method finish(core::int hash) core::int {
hash = 536870911.{core::int::&}(hash.{core::num::+}(67108863.{core::int::&}(hash){(core::int) core::int}.{core::int::<<}(3){(core::int) core::int}){(core::num) core::int}){(core::int) core::int};
hash = hash.{core::int::^}(hash.{core::int::>>}(11){(core::int) core::int}){(core::int) core::int};
return 536870911.{core::int::&}(hash.{core::num::+}(16383.{core::int::&}(hash){(core::int) core::int}.{core::int::<<}(15){(core::int) core::int}){(core::num) core::int}){(core::int) core::int};
}
}
static const field core::String valueClass = #C1;
constants {
#C1 = "valueClass"
}