blob: 26da5b89ff866e86615ba8af191a59a9cb857457 [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart = 2.9
library test.declarations_model;
var libraryVariable;
get libraryGetter => null;
set librarySetter(x) => x;
libraryMethod() => null;
typedef bool Predicate(dynamic);
abstract class Interface<I> {
operator /(x) => null;
var interfaceInstanceVariable;
get interfaceInstanceGetter;
set interfaceInstanceSetter(x);
interfaceInstanceMethod();
static var interfaceStaticVariable;
static get interfaceStaticGetter => null;
static set interfaceStaticSetter(x) => x;
static interfaceStaticMethod() => null;
}
class Superclass<S> {
operator -(x) => null;
var inheritedInstanceVariable;
get inheritedInstanceGetter => null;
set inheritedInstanceSetter(x) => x;
inheritedInstanceMethod() => null;
static var inheritedStaticVariable;
static get inheritedStaticGetter => null;
static set inheritedStaticSetter(x) => x;
static inheritedStaticMethod() => null;
Superclass.inheritedGenerativeConstructor(this.inheritedInstanceVariable);
Superclass.inheritedRedirectingConstructor(x)
: this.inheritedGenerativeConstructor(x * 2);
factory Superclass.inheritedNormalFactory(y) =>
new Superclass.inheritedRedirectingConstructor(y * 3);
factory Superclass.inheritedRedirectingFactory(z) =
Superclass<S>.inheritedNormalFactory;
}
abstract class Class<C> extends Superclass<C> implements Interface<C> {
operator +(x) => null;
abstractMethod();
var instanceVariable;
get instanceGetter => null;
set instanceSetter(x) => x;
instanceMethod() => null;
static var staticVariable;
static get staticGetter => null;
static set staticSetter(x) => x;
static staticMethod() => null;
Class.generativeConstructor(this.instanceVariable)
: super.inheritedGenerativeConstructor(0);
Class.redirectingConstructor(x) : this.generativeConstructor(x * 2);
factory Class.normalFactory(y) => new ConcreteClass(y * 3);
factory Class.redirectingFactory(z) = Class<C>.normalFactory;
}
// This is just here as a target of Class's factories to appease the analyzer.
class ConcreteClass<CC> extends Class<CC> {
abstractMethod() {}
operator /(x) => null;
var interfaceInstanceVariable;
get interfaceInstanceGetter => null;
set interfaceInstanceSetter(x) => null;
interfaceInstanceMethod() => null;
ConcreteClass(x) : super.generativeConstructor(x);
}