[cfe] Add flag to identify lowered locals

+ add predicate helpers to identify these and extract their
original names.

TEST=pkg/front_end/test/predicates/predicate_test.dart

Change-Id: I4d94c575d010b6b01c985eaf5392b9e0e979d044
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175250
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
This commit is contained in:
Johnni Winther
2020-12-08 14:53:14 +00:00
committed by commit-bot@chromium.org
parent c549ecf1e6
commit 3d19493f2d
442 changed files with 4212 additions and 4021 deletions
@@ -4,8 +4,7 @@
import 'package:kernel/ast.dart';
import '../fasta/kernel/late_lowering.dart';
// TODO(johnniwinther): Add support for recognizing late lowered locals?
import '../fasta/source/source_extension_builder.dart' show extensionThisName;
/// Returns `true` if [node] is the field holding the value of a lowered late
/// field.
@@ -147,29 +146,30 @@ bool isLateLoweredFieldSetter(Procedure node) {
/// where '#local' is the local variable holding that value.
///
/// The default value of this variable is `null`.
// TODO(johnniwinther): Enable these if the name of late locals is changed
// to '${lateLocalPrefix}${name}'. See
// backends can benefit from identifying late locals.
/*bool isLateLoweredLocal(VariableDeclaration node) {
return node.name != null && isLateLoweredLocalName(node.name);
bool isLateLoweredLocal(VariableDeclaration node) {
assert(node.isLowered ||
node.name == null ||
!isLateLoweredLocalName(node.name));
return node.isLowered && isLateLoweredLocalName(node.name);
}
/// Returns `true` if [name] is the name of a local variable holding the value
/// of a lowered late variable.
bool isLateLoweredLocalName(String name) {
return name.startsWith(lateLocalPrefix) &&
!(name.endsWith(lateIsSetSuffix) ||
name.endsWith(lateLocalGetterSuffix) ||
name.endsWith(lateLocalSetterSuffix));
return name != extensionThisName &&
name.startsWith(lateLocalPrefix) &&
!name.endsWith(lateIsSetSuffix) &&
!name.endsWith(lateLocalGetterSuffix) &&
!name.endsWith(lateLocalSetterSuffix);
}
/// Returns the name of the original late local variable from the [name] of the
/// local variable holding the value of the lowered late variable.
///
/// This method assumes that `isLateLoweredLocalName(name)` is `true`.
String extractLateLoweredLocalNameFrom(String name) {
String extractLocalNameFromLateLoweredLocal(String name) {
return name.substring(lateLocalPrefix.length);
}*/
}
/// Returns `true` if [node] is the local variable holding the marker for
/// whether a lowered late local variable has been set or not.
@@ -192,12 +192,15 @@ String extractLateLoweredLocalNameFrom(String name) {
///
/// The default value of this variable is `false`.
bool isLateLoweredIsSetLocal(VariableDeclaration node) {
return node.name != null && isLateLoweredIsSetName(node.name);
assert(node.isLowered ||
node.name == null ||
!isLateLoweredIsSetLocalName(node.name));
return node.isLowered && isLateLoweredIsSetLocalName(node.name);
}
/// Returns `true` if [name] is the name of a local variable holding the marker
/// for whether a lowered late local variable has been set or not.
bool isLateLoweredIsSetName(String name) {
bool isLateLoweredIsSetLocalName(String name) {
return name.startsWith(lateLocalPrefix) && name.endsWith(lateIsSetSuffix);
}
@@ -228,12 +231,15 @@ String extractLocalNameFromLateLoweredIsSet(String name) {
///
/// where '#local#get' is the local function for reading the variable.
bool isLateLoweredLocalGetter(VariableDeclaration node) {
return node.name != null && isLateLoweredGetterName(node.name);
assert(node.isLowered ||
node.name == null ||
!isLateLoweredLocalGetterName(node.name));
return node.isLowered && isLateLoweredLocalGetterName(node.name);
}
/// Returns `true` if [name] is the name of the local variable for the local
/// function for reading the value of a lowered late variable.
bool isLateLoweredGetterName(String name) {
bool isLateLoweredLocalGetterName(String name) {
return name.startsWith(lateLocalPrefix) &&
name.endsWith(lateLocalGetterSuffix);
}
@@ -266,12 +272,15 @@ String extractLocalNameFromLateLoweredGetter(String name) {
/// where '#local#set' is the local function for setting the value of the
/// variable.
bool isLateLoweredLocalSetter(VariableDeclaration node) {
return node.name != null && isLateLoweredSetterName(node.name);
assert(node.isLowered ||
node.name == null ||
!isLateLoweredLocalSetterName(node.name));
return node.isLowered && isLateLoweredLocalSetterName(node.name);
}
/// Returns `true` if [name] is the name of the local variable for the local
/// function for setting the value of a lowered late variable.
bool isLateLoweredSetterName(String name) {
bool isLateLoweredLocalSetterName(String name) {
return name.startsWith(lateLocalPrefix) &&
name.endsWith(lateLocalSetterSuffix);
}
@@ -285,3 +294,84 @@ String extractLocalNameFromLateLoweredSetter(String name) {
return name.substring(
lateLocalPrefix.length, name.length - lateLocalSetterSuffix.length);
}
/// Returns `true` if [node] is the synthetic parameter holding the `this` value
/// in the encoding of extension instance members.
///
/// For instance
///
/// extension Extension on int {
/// int method() => this;
/// }
///
/// is encoded as
///
/// int Extension|method(int #this) => #this;
///
/// where '#this' is the synthetic "extension this" parameter.
bool isExtensionThis(VariableDeclaration node) {
assert(
node.isLowered || node.name == null || !isExtensionThisName(node.name));
return node.isLowered && isExtensionThisName(node.name);
}
/// Returns `true` if [name] is the name of the synthetic parameter holding the
/// `this` value in the encoding of extension instance members.
bool isExtensionThisName(String name) {
return name == extensionThisName;
}
/// Returns the name of the original variable from the [name] of the synthetic
/// parameter holding the `this` value in the encoding of extension instance
/// members.
///
/// This method assumes that `isExtensionThisName(name)` is `true`.
String extractLocalNameForExtensionThis(String name) {
return 'this';
}
/// Returns the original name of the variable [node].
///
/// If [node] is a lowered variable then the name before lowering is returned.
/// Otherwise the name of the variable itself is returned.
///
/// Note that the name can be `null` in case of a synthetic variable created
/// for instance for encoding of `?.`.
String extractLocalNameFromVariable(VariableDeclaration node) {
if (node.isLowered) {
String name = _extractLocalName(node.name);
if (name == null) {
throw new UnsupportedError("Unrecognized lowered local $node");
}
return name;
}
return node.name;
}
/// Returns the original name of a variable by the given [name].
///
/// If [name] is the name of a lowered variable then the name before lowering is
/// returned. Otherwise the name of the variable itself is returned.
///
/// This assumed that [name] is non-null.
String extractLocalName(String name) {
return _extractLocalName(name) ?? name;
}
/// Returns the original name of a lowered variable by the given [name].
///
/// If [name] doesn't correspond to a lowered name `null` is returned.
String _extractLocalName(String name) {
if (isExtensionThisName(name)) {
return extractLocalNameForExtensionThis(name);
} else if (isLateLoweredLocalName(name)) {
return extractLocalNameFromLateLoweredLocal(name);
} else if (isLateLoweredLocalGetterName(name)) {
return extractLocalNameFromLateLoweredGetter(name);
} else if (isLateLoweredLocalSetterName(name)) {
return extractLocalNameFromLateLoweredSetter(name);
} else if (isLateLoweredIsSetLocalName(name)) {
return extractLocalNameFromLateLoweredIsSet(name);
}
return null;
}
@@ -74,9 +74,11 @@ class FormalParameterBuilder extends ModifierBuilderImpl
/// True if the initializer was declared by the programmer.
bool hasDeclaredInitializer = false;
final bool isExtensionThis;
FormalParameterBuilder(this.metadata, this.modifiers, this.type, this.name,
LibraryBuilder compilationUnit, int charOffset,
[Uri fileUri])
{Uri fileUri, this.isExtensionThis: false})
: super(compilationUnit, charOffset, fileUri);
String get debugName => "FormalParameterBuilder";
@@ -122,7 +124,8 @@ class FormalParameterBuilder extends ModifierBuilderImpl
isFieldFormal: isInitializingFormal,
isCovariant: isCovariant,
isRequired: isNamedRequired,
hasDeclaredInitializer: hasDeclaredInitializer)
hasDeclaredInitializer: hasDeclaredInitializer,
isLowered: isExtensionThis)
..fileOffset = charOffset;
}
return variable;
@@ -131,8 +134,9 @@ class FormalParameterBuilder extends ModifierBuilderImpl
FormalParameterBuilder clone(List<TypeBuilder> newTypes) {
// TODO(dmitryas): It's not clear how [metadata] is used currently, and
// how it should be cloned. Consider cloning it instead of reusing it.
return new FormalParameterBuilder(metadata, modifiers,
type?.clone(newTypes), name, parent, charOffset, fileUri)
return new FormalParameterBuilder(
metadata, modifiers, type?.clone(newTypes), name, parent, charOffset,
fileUri: fileUri, isExtensionThis: isExtensionThis)
..kind = kind;
}
@@ -147,7 +151,8 @@ class FormalParameterBuilder extends ModifierBuilderImpl
name,
null,
charOffset,
fileUri)
fileUri: fileUri,
isExtensionThis: isExtensionThis)
..parent = parent
..variable = variable);
}
@@ -482,7 +482,9 @@ class SourceProcedureBuilder extends ProcedureBuilderImpl {
VariableDeclaration parameter, DartType type,
{bool isOptional}) {
VariableDeclaration newParameter = new VariableDeclaration(parameter.name,
type: type, isFinal: parameter.isFinal)
type: type,
isFinal: parameter.isFinal,
isLowered: parameter.isLowered)
..fileOffset = parameter.fileOffset;
_extensionTearOffParameterMap[parameter] = newParameter;
return newParameter;
@@ -1394,7 +1394,8 @@ class BodyBuilder extends ScopeListener<JumpTarget>
for (int i = 0; i < parameters.positionalParameters.length; i++) {
VariableDeclaration formal = parameters.positionalParameters[i];
formals[i] = new FormalParameterBuilder(
null, 0, null, formal.name, libraryBuilder, formal.fileOffset, uri)
null, 0, null, formal.name, libraryBuilder, formal.fileOffset,
fileUri: uri)
..variable = formal;
}
enterLocalScope(
@@ -3567,7 +3568,8 @@ class BodyBuilder extends ScopeListener<JumpTarget>
}
} else {
parameter = new FormalParameterBuilder(null, modifiers, type?.builder,
name?.name, libraryBuilder, offsetForToken(nameToken), uri)
name?.name, libraryBuilder, offsetForToken(nameToken),
fileUri: uri)
..hasDeclaredInitializer = (initializerStart != null);
}
VariableDeclaration variable = parameter.build(
@@ -5807,7 +5807,8 @@ class InferenceVisitor
isSetVariable = new VariableDeclaration(
late_lowering.computeLateLocalIsSetName(node.name),
initializer: new BoolLiteral(false)..fileOffset = fileOffset,
type: inferrer.coreTypes.boolRawType(inferrer.library.nonNullable))
type: inferrer.coreTypes.boolRawType(inferrer.library.nonNullable),
isLowered: true)
..fileOffset = fileOffset;
result.add(isSetVariable);
}
@@ -5828,7 +5829,8 @@ class InferenceVisitor
new VariableSet(isSetVariable, value);
VariableDeclaration getVariable = new VariableDeclaration(
late_lowering.computeLateLocalGetterName(node.name))
late_lowering.computeLateLocalGetterName(node.name),
isLowered: true)
..fileOffset = fileOffset;
FunctionDeclaration getter = new FunctionDeclaration(
getVariable,
@@ -5875,7 +5877,8 @@ class InferenceVisitor
node.isLateFinalWithoutInitializer =
node.isFinal && node.initializer == null;
VariableDeclaration setVariable = new VariableDeclaration(
late_lowering.computeLateLocalSetterName(node.name))
late_lowering.computeLateLocalSetterName(node.name),
isLowered: true)
..fileOffset = fileOffset;
VariableDeclaration setterParameter =
new VariableDeclaration(null, type: node.type)
@@ -5927,6 +5930,7 @@ class InferenceVisitor
}
node.type = inferrer.computeNullable(node.type);
node.lateName = node.name;
node.isLowered = true;
node.name = late_lowering.computeLateLocalName(node.name);
return new StatementInferenceResult.multiple(node.fileOffset, result);
@@ -1428,6 +1428,7 @@ class VariableDeclarationImpl extends VariableDeclaration {
bool isLocalFunction: false,
bool isLate: false,
bool isRequired: false,
bool isLowered: false,
this.isStaticLate: false})
: isImplicitlyTyped = type == null,
isLocalFunction = isLocalFunction,
@@ -1439,7 +1440,8 @@ class VariableDeclarationImpl extends VariableDeclaration {
isFieldFormal: isFieldFormal,
isCovariant: isCovariant,
isLate: isLate,
isRequired: isRequired);
isRequired: isRequired,
isLowered: isLowered);
VariableDeclarationImpl.forEffect(Expression initializer)
: forSyntheticToken = false,
@@ -593,9 +593,7 @@ IsSetEncoding computeIsSetEncoding(DartType type, IsSetStrategy isSetStrategy) {
/// Returns the name used for the variable that holds the value of a late
/// lowered local by the given [name].
String computeLateLocalName(String name) {
// TODO(johnniwinther): Change this to '${lateLocalPrefix}${name}' if
// backends can benefit from identifying late locals.
return name;
return '${lateLocalPrefix}$name';
}
/// Returns the name used for the 'isSet' variable of a late lowered local by
@@ -351,7 +351,8 @@ TypeBuilder substituteRange(
formal.name,
formal.parent,
formal.charOffset,
formal.fileUri);
fileUri: formal.fileUri,
isExtensionThis: formal.isExtensionThis);
changed = true;
} else {
formals[i] = formal;
@@ -163,15 +163,25 @@ class TypeBuilderComputer implements DartTypeVisitor<TypeBuilder> {
if (i >= node.requiredParameterCount) {
kind = FormalParameterKind.optionalPositional;
}
formals[i] =
new FormalParameterBuilder(null, 0, type, null, null, -1, null)
..kind = kind;
formals[i] = new FormalParameterBuilder(
/* metadata = */ null,
/* modifiers = */ 0,
type,
/* name = */ null,
/* compilationUnit = */ null,
/* charOffset = */ TreeNode.noOffset)
..kind = kind;
}
for (int i = 0; i < namedParameters.length; i++) {
NamedType parameter = namedParameters[i];
TypeBuilder type = parameter.type.accept(this);
formals[i + positionalParameters.length] = new FormalParameterBuilder(
null, 0, type, parameter.name, null, -1, null)
/* metadata = */ null,
/* modifiers = */ 0,
type,
parameter.name,
/* compilationUnit = */ null,
/* charOffset = */ TreeNode.noOffset)
..kind = FormalParameterKind.optionalNamed;
}
return new FunctionTypeBuilder(
@@ -180,7 +190,7 @@ class TypeBuilderComputer implements DartTypeVisitor<TypeBuilder> {
formals,
new NullabilityBuilder.fromNullability(node.nullability),
/* fileUri = */ null,
/* charOffset = */ null);
/* charOffset = */ TreeNode.noOffset);
}
TypeBuilder visitTypeParameterType(TypeParameterType node) {
@@ -80,6 +80,8 @@ import '../operator.dart'
import '../problems.dart' show unhandled;
import 'source_extension_builder.dart';
import 'source_library_builder.dart'
show
TypeParameterScopeBuilder,
@@ -1170,7 +1172,8 @@ class OutlineBuilder extends StackListenerImpl {
libraryBuilder.boundlessTypeVariables.addAll(unboundTypeVariables);
}
synthesizedFormals.add(new FormalParameterBuilder(
null, finalMask, thisType, "#this", null, charOffset, uri));
null, finalMask, thisType, extensionThisName, null, charOffset,
fileUri: uri, isExtensionThis: true));
if (formals != null) {
synthesizedFormals.addAll(formals);
}
@@ -35,6 +35,8 @@ import '../scope.dart';
import 'source_library_builder.dart';
const String extensionThisName = '#this';
class SourceExtensionBuilder extends ExtensionBuilderImpl {
final Extension _extension;
@@ -2587,7 +2587,8 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
modifiers |= initializingFormalMask;
}
FormalParameterBuilder formal = new FormalParameterBuilder(
metadata, modifiers, type, name, this, charOffset, fileUri)
metadata, modifiers, type, name, this, charOffset,
fileUri: fileUri)
..initializerToken = initializerToken
..hasDeclaredInitializer = (initializerToken != null);
return formal;
@@ -0,0 +1,17 @@
// Copyright (c) 2020, 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.
extension Extension on int {
int /*extensionThis*/ instanceMethod() => this;
int get /*extensionThis*/ instanceGetter => this;
void set /*extensionThis*/ instanceSetter(int value) {}
static int staticMethod() => 42;
static int get staticGetter => 42;
static void set staticSetter(int value) {}
}
+24 -12
View File
@@ -122,51 +122,63 @@ class Class {
}
method() {
late int /*
late int
/*
lateIsSetLocal,
lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNonNullableWithoutInitializer;
late final int
/*
lateIsSetLocal,
lateLocalGetter,
lateLocalSetter
*/
lateIsSetLocal,
lateLocal,
lateLocalGetter,
lateLocalSetter
*/
finalLocalNonNullableWithoutInitializer;
late int? /*
late int?
/*
lateIsSetLocal,
lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNullableWithoutInitializer;
late final int?
/*
lateIsSetLocal,
lateLocalGetter,
lateLocalSetter
*/
lateIsSetLocal,
lateLocal,
lateLocalGetter,
lateLocalSetter
*/
finalLocalNullableWithoutInitializer;
late int /*
late int
/*
lateIsSetLocal,
lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNonNullableWithInitializer = 0;
late final int /*
lateIsSetLocal,
lateLocal,
lateLocalGetter
*/
finalLocalNonNullableWithInitializer = 0;
late int? /*
late int?
/*
lateIsSetLocal,
lateLocal,
lateLocalGetter,
lateLocalSetter
*/
localNullableWithInitializer = 0;
late final int? /*
lateIsSetLocal,
lateLocal,
lateLocalGetter
*/
finalLocalNullableWithInitializer = 0;
@@ -41,6 +41,8 @@ class Tags {
static const String lateIsSetLocal = 'lateIsSetLocal';
static const String lateLocalGetter = 'lateLocalGetter';
static const String lateLocalSetter = 'lateLocalSetter';
static const String extensionThis = 'extensionThis';
}
class PredicateDataComputer extends DataComputer<Features> {
@@ -129,7 +131,10 @@ class PredicateDataExtractor extends CfeDataExtractor<Features> {
void visitVariableDeclaration(VariableDeclaration node) {
String name;
String tag;
if (isLateLoweredIsSetLocal(node)) {
if (isLateLoweredLocal(node)) {
name = extractLocalNameFromLateLoweredLocal(node.name);
tag = Tags.lateLocal;
} else if (isLateLoweredIsSetLocal(node)) {
name = extractLocalNameFromLateLoweredIsSet(node.name);
tag = Tags.lateIsSetLocal;
} else if (isLateLoweredLocalGetter(node)) {
@@ -138,6 +143,9 @@ class PredicateDataExtractor extends CfeDataExtractor<Features> {
} else if (isLateLoweredLocalSetter(node)) {
name = extractLocalNameFromLateLoweredSetter(node.name);
tag = Tags.lateLocalSetter;
} else if (isExtensionThis(node)) {
name = extractLocalNameForExtensionThis(node.name);
tag = Tags.extensionThis;
} else if (node.name != null) {
name = node.name;
}
@@ -152,4 +160,16 @@ class PredicateDataExtractor extends CfeDataExtractor<Features> {
}
super.visitVariableDeclaration(node);
}
@override
ActualData<Features> mergeData(
ActualData<Features> value1, ActualData<Features> value2) {
if ('${value1.value}' == '${value2.value}') {
// The extension this parameter is seen twice in the extension method
// and the corresponding tearoff. The features are identical, though, so
// we just use the first.
return value1;
}
return null;
}
}
@@ -36,37 +36,37 @@ extension B on self::C* {
set setter = self::B|set#setter;
set property = self::B|set#property;
}
static method A|method(final self::C* #this) → void
static method A|method(lowered final self::C* #this) → void
;
static method A|get#method(final self::C* #this) → () →* void
static method A|get#method(lowered final self::C* #this) → () →* void
return () → void => self::A|method(#this);
static method A|get#getter(final self::C* #this) → core::int*
static method A|get#getter(lowered final self::C* #this) → core::int*
;
static method A|set#setter(final self::C* #this, core::int* value) → void
static method A|set#setter(lowered final self::C* #this, core::int* value) → void
;
static method A|get#property(final self::C* #this) → core::int*
static method A|get#property(lowered final self::C* #this) → core::int*
;
static method A|+(final self::C* #this, core::int* i) → core::int*
static method A|+(lowered final self::C* #this, core::int* i) → core::int*
;
static method A|unary-(final self::C* #this) → core::int*
static method A|unary-(lowered final self::C* #this) → core::int*
;
static method A|[](final self::C* #this, core::int* i) → core::int*
static method A|[](lowered final self::C* #this, core::int* i) → core::int*
;
static method B|method(final self::C* #this) → void
static method B|method(lowered final self::C* #this) → void
;
static method B|get#method(final self::C* #this) → () →* void
static method B|get#method(lowered final self::C* #this) → () →* void
return () → void => self::B|method(#this);
static method B|get#getter(final self::C* #this) → core::int*
static method B|get#getter(lowered final self::C* #this) → core::int*
;
static method B|set#setter(final self::C* #this, core::int* value) → void
static method B|set#setter(lowered final self::C* #this, core::int* value) → void
;
static method B|set#property(final self::C* #this, core::int* value) → void
static method B|set#property(lowered final self::C* #this, core::int* value) → void
;
static method B|+(final self::C* #this, core::int* i) → core::int*
static method B|+(lowered final self::C* #this, core::int* i) → core::int*
;
static method B|unary-(final self::C* #this) → core::int*
static method B|unary-(lowered final self::C* #this) → core::int*
;
static method B|[]=(final self::C* #this, core::int* i, core::int* j) → void
static method B|[]=(lowered final self::C* #this, core::int* i, core::int* j) → void
;
static method errors(self::C* c) → dynamic
;
@@ -184,32 +184,32 @@ extension B on self::C* {
set setter = self::B|set#setter;
set property = self::B|set#property;
}
static method A|method(final self::C* #this) → void {}
static method A|get#method(final self::C* #this) → () →* void
static method A|method(lowered final self::C* #this) → void {}
static method A|get#method(lowered final self::C* #this) → () →* void
return () → void => self::A|method(#this);
static method A|get#getter(final self::C* #this) → core::int*
static method A|get#getter(lowered final self::C* #this) → core::int*
return 42;
static method A|set#setter(final self::C* #this, core::int* value) → void {}
static method A|get#property(final self::C* #this) → core::int*
static method A|set#setter(lowered final self::C* #this, core::int* value) → void {}
static method A|get#property(lowered final self::C* #this) → core::int*
return 42;
static method A|+(final self::C* #this, core::int* i) → core::int*
static method A|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
static method A|unary-(final self::C* #this) → core::int*
static method A|unary-(lowered final self::C* #this) → core::int*
return 0;
static method A|[](final self::C* #this, core::int* i) → core::int*
static method A|[](lowered final self::C* #this, core::int* i) → core::int*
return i;
static method B|method(final self::C* #this) → void {}
static method B|get#method(final self::C* #this) → () →* void
static method B|method(lowered final self::C* #this) → void {}
static method B|get#method(lowered final self::C* #this) → () →* void
return () → void => self::B|method(#this);
static method B|get#getter(final self::C* #this) → core::int*
static method B|get#getter(lowered final self::C* #this) → core::int*
return 42;
static method B|set#setter(final self::C* #this, core::int* value) → void {}
static method B|set#property(final self::C* #this, core::int* value) → void {}
static method B|+(final self::C* #this, core::int* i) → core::int*
static method B|set#setter(lowered final self::C* #this, core::int* value) → void {}
static method B|set#property(lowered final self::C* #this, core::int* value) → void {}
static method B|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
static method B|unary-(final self::C* #this) → core::int*
static method B|unary-(lowered final self::C* #this) → core::int*
return 0;
static method B|[]=(final self::C* #this, core::int* i, core::int* j) → void {}
static method B|[]=(lowered final self::C* #this, core::int* i, core::int* j) → void {}
static method errors(self::C* c) → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:28:5: Error: The method 'method' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
@@ -184,32 +184,32 @@ extension B on self::C* {
set setter = self::B|set#setter;
set property = self::B|set#property;
}
static method A|method(final self::C* #this) → void {}
static method A|get#method(final self::C* #this) → () →* void
static method A|method(lowered final self::C* #this) → void {}
static method A|get#method(lowered final self::C* #this) → () →* void
return () → void => self::A|method(#this);
static method A|get#getter(final self::C* #this) → core::int*
static method A|get#getter(lowered final self::C* #this) → core::int*
return 42;
static method A|set#setter(final self::C* #this, core::int* value) → void {}
static method A|get#property(final self::C* #this) → core::int*
static method A|set#setter(lowered final self::C* #this, core::int* value) → void {}
static method A|get#property(lowered final self::C* #this) → core::int*
return 42;
static method A|+(final self::C* #this, core::int* i) → core::int*
static method A|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
static method A|unary-(final self::C* #this) → core::int*
static method A|unary-(lowered final self::C* #this) → core::int*
return 0;
static method A|[](final self::C* #this, core::int* i) → core::int*
static method A|[](lowered final self::C* #this, core::int* i) → core::int*
return i;
static method B|method(final self::C* #this) → void {}
static method B|get#method(final self::C* #this) → () →* void
static method B|method(lowered final self::C* #this) → void {}
static method B|get#method(lowered final self::C* #this) → () →* void
return () → void => self::B|method(#this);
static method B|get#getter(final self::C* #this) → core::int*
static method B|get#getter(lowered final self::C* #this) → core::int*
return 42;
static method B|set#setter(final self::C* #this, core::int* value) → void {}
static method B|set#property(final self::C* #this, core::int* value) → void {}
static method B|+(final self::C* #this, core::int* i) → core::int*
static method B|set#setter(lowered final self::C* #this, core::int* value) → void {}
static method B|set#property(lowered final self::C* #this, core::int* value) → void {}
static method B|+(lowered final self::C* #this, core::int* i) → core::int*
return i;
static method B|unary-(final self::C* #this) → core::int*
static method B|unary-(lowered final self::C* #this) → core::int*
return 0;
static method B|[]=(final self::C* #this, core::int* i, core::int* j) → void {}
static method B|[]=(lowered final self::C* #this, core::int* i, core::int* j) → void {}
static method errors(self::C* c) → dynamic {
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:28:5: Error: The method 'method' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
@@ -28,9 +28,9 @@ extension Extension on self::Class* {
static method extensionStaticMethod = self::Extension|extensionStaticMethod;
}
@core::pragma::_("dart2js:noInline")
static method Extension|extensionInstanceMethod(final self::Class* #this) → dynamic
static method Extension|extensionInstanceMethod(lowered final self::Class* #this) → dynamic
;
static method Extension|get#extensionInstanceMethod(final self::Class* #this) → () →* dynamic
static method Extension|get#extensionInstanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|extensionInstanceMethod(#this);
@core::pragma::_("dart2js:noInline")
static method Extension|extensionStaticMethod() → dynamic
@@ -27,8 +27,8 @@ extension Extension on self::Class* {
static method extensionStaticMethod = self::Extension|extensionStaticMethod;
}
@#C3
static method Extension|extensionInstanceMethod(final self::Class* #this) → dynamic {}
static method Extension|get#extensionInstanceMethod(final self::Class* #this) → () →* dynamic
static method Extension|extensionInstanceMethod(lowered final self::Class* #this) → dynamic {}
static method Extension|get#extensionInstanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|extensionInstanceMethod(#this);
@#C3
static method Extension|extensionStaticMethod() → dynamic {}
@@ -27,8 +27,8 @@ extension Extension on self::Class* {
static method extensionStaticMethod = self::Extension|extensionStaticMethod;
}
@#C3
static method Extension|extensionInstanceMethod(final self::Class* #this) → dynamic {}
static method Extension|get#extensionInstanceMethod(final self::Class* #this) → () →* dynamic
static method Extension|extensionInstanceMethod(lowered final self::Class* #this) → dynamic {}
static method Extension|get#extensionInstanceMethod(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|extensionInstanceMethod(#this);
@#C3
static method Extension|extensionStaticMethod() → dynamic {}
@@ -10,17 +10,17 @@ extension Extension on core::int* {
method asyncStarMethod = self::Extension|asyncStarMethod;
tearoff asyncStarMethod = self::Extension|get#asyncStarMethod;
}
static method Extension|syncStarMethod(final core::int* #this) → dynamic sync*
static method Extension|syncStarMethod(lowered final core::int* #this) → dynamic sync*
;
static method Extension|get#syncStarMethod(final core::int* #this) → () →* dynamic
static method Extension|get#syncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|syncStarMethod(#this);
static method Extension|asyncMethod(final core::int* #this) → dynamic async
static method Extension|asyncMethod(lowered final core::int* #this) → dynamic async
;
static method Extension|get#asyncMethod(final core::int* #this) → () →* dynamic
static method Extension|get#asyncMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncMethod(#this);
static method Extension|asyncStarMethod(final core::int* #this) → dynamic async*
static method Extension|asyncStarMethod(lowered final core::int* #this) → dynamic async*
;
static method Extension|get#asyncStarMethod(final core::int* #this) → () →* dynamic
static method Extension|get#asyncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncStarMethod(#this);
static method main() → dynamic
;
@@ -10,14 +10,14 @@ extension Extension on core::int* {
method asyncStarMethod = self::Extension|asyncStarMethod;
tearoff asyncStarMethod = self::Extension|get#asyncStarMethod;
}
static method Extension|syncStarMethod(final core::int* #this) → dynamic sync* {}
static method Extension|get#syncStarMethod(final core::int* #this) → () →* dynamic
static method Extension|syncStarMethod(lowered final core::int* #this) → dynamic sync* {}
static method Extension|get#syncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|syncStarMethod(#this);
static method Extension|asyncMethod(final core::int* #this) → dynamic async {}
static method Extension|get#asyncMethod(final core::int* #this) → () →* dynamic
static method Extension|asyncMethod(lowered final core::int* #this) → dynamic async {}
static method Extension|get#asyncMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncMethod(#this);
static method Extension|asyncStarMethod(final core::int* #this) → dynamic async* {}
static method Extension|get#asyncStarMethod(final core::int* #this) → () →* dynamic
static method Extension|asyncStarMethod(lowered final core::int* #this) → dynamic async* {}
static method Extension|get#asyncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncStarMethod(#this);
static method main() → dynamic {
self::Extension|syncStarMethod(0);
@@ -11,7 +11,7 @@ extension Extension on core::int* {
method asyncStarMethod = self::Extension|asyncStarMethod;
tearoff asyncStarMethod = self::Extension|get#asyncStarMethod;
}
static method Extension|syncStarMethod(final core::int* #this) → dynamic /* originally sync* */ {
static method Extension|syncStarMethod(lowered final core::int* #this) → dynamic /* originally sync* */ {
function :sync_op_gen() → (core::_SyncIterator<dynamic>*, dynamic, dynamic) →* core::bool* {
core::int* :await_jump_var = 0;
dynamic :await_ctx_var;
@@ -23,9 +23,9 @@ static method Extension|syncStarMethod(final core::int* #this) → dynamic /* or
}
return new core::_SyncIterable::•<dynamic>(:sync_op_gen);
}
static method Extension|get#syncStarMethod(final core::int* #this) → () →* dynamic
static method Extension|get#syncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|syncStarMethod(#this);
static method Extension|asyncMethod(final core::int* #this) → dynamic /* originally async */ {
static method Extension|asyncMethod(lowered final core::int* #this) → dynamic /* originally async */ {
final asy::_Future<dynamic>* :async_future = new asy::_Future::•<dynamic>();
core::bool* :is_sync = false;
FutureOr<dynamic>* :return_value;
@@ -49,9 +49,9 @@ static method Extension|asyncMethod(final core::int* #this) → dynamic /* origi
:is_sync = true;
return :async_future;
}
static method Extension|get#asyncMethod(final core::int* #this) → () →* dynamic
static method Extension|get#asyncMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncMethod(#this);
static method Extension|asyncStarMethod(final core::int* #this) → dynamic /* originally async* */ {
static method Extension|asyncStarMethod(lowered final core::int* #this) → dynamic /* originally async* */ {
asy::_AsyncStarStreamController<dynamic>* :controller;
dynamic :controller_stream;
(dynamic) →* dynamic :async_op_then;
@@ -77,7 +77,7 @@ static method Extension|asyncStarMethod(final core::int* #this) → dynamic /* o
:controller_stream = :controller.{asy::_AsyncStarStreamController::stream};
return :controller_stream;
}
static method Extension|get#asyncStarMethod(final core::int* #this) → () →* dynamic
static method Extension|get#asyncStarMethod(lowered final core::int* #this) → () →* dynamic
return () → dynamic => self::Extension|asyncStarMethod(#this);
static method main() → dynamic {
self::Extension|syncStarMethod(0);
@@ -42,69 +42,69 @@ extension Extension4<T extends core::Object* = dynamic> on T* {
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(final self::Extension1|method1::T* #this) → dynamic
static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic
;
static method Extension1|get#method1<T extends core::Object* = core::Object*>(final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(final self::Extension1|method2::T* #this) → dynamic
static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic
;
static method Extension1|get#method2<T extends core::Object* = core::Object*>(final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(final self::Extension1|method3::T* #this) → dynamic
static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic
;
static method Extension1|get#method3<T extends core::Object* = core::Object*>(final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(final self::Extension1|method4::T* #this) → dynamic
static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic
;
static method Extension1|get#method4<T extends core::Object* = core::Object*>(final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(final self::Extension2|method1::T* #this) → dynamic
static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic
;
static method Extension2|get#method1<T extends core::String* = core::String*>(final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(final self::Extension2|method2::T* #this) → dynamic
static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic
;
static method Extension2|get#method2<T extends core::String* = core::String*>(final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(final self::Extension2|method3::T* #this) → dynamic
static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic
;
static method Extension2|get#method3<T extends core::String* = core::String*>(final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(final self::Extension2|method4::T* #this) → dynamic
static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic
;
static method Extension2|get#method4<T extends core::String* = core::String*>(final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(final self::Extension3|method1::T* #this) → dynamic
static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic
;
static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(final self::Extension3|method2::T* #this) → dynamic
static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic
;
static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T* #this) → dynamic
static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic
;
static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(final self::Extension3|method4::T* #this) → dynamic
static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic
;
static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(final self::Extension4|method1::T* #this) → dynamic
static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic
;
static method Extension4|get#method1<T extends core::Object* = dynamic>(final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(final self::Extension4|method2::T* #this) → dynamic
static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic
;
static method Extension4|get#method2<T extends core::Object* = dynamic>(final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T* #this) → dynamic
static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic
;
static method Extension4|get#method3<T extends core::Object* = dynamic>(final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::Extension4|method4::T* #this) → dynamic
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic
;
static method Extension4|get#method4<T extends core::Object* = dynamic>(final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
static method main() → dynamic
;
@@ -42,52 +42,52 @@ extension Extension4<T extends core::Object* = dynamic> on T* {
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(final self::Extension1|method1::T* #this) → dynamic {}
static method Extension1|get#method1<T extends core::Object* = core::Object*>(final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(final self::Extension1|method2::T* #this) → dynamic {}
static method Extension1|get#method2<T extends core::Object* = core::Object*>(final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(final self::Extension1|method3::T* #this) → dynamic {}
static method Extension1|get#method3<T extends core::Object* = core::Object*>(final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(final self::Extension1|method4::T* #this) → dynamic {}
static method Extension1|get#method4<T extends core::Object* = core::Object*>(final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(final self::Extension2|method1::T* #this) → dynamic {}
static method Extension2|get#method1<T extends core::String* = core::String*>(final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(final self::Extension2|method2::T* #this) → dynamic {}
static method Extension2|get#method2<T extends core::String* = core::String*>(final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(final self::Extension2|method3::T* #this) → dynamic {}
static method Extension2|get#method3<T extends core::String* = core::String*>(final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(final self::Extension2|method4::T* #this) → dynamic {}
static method Extension2|get#method4<T extends core::String* = core::String*>(final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(final self::Extension3|method1::T* #this) → dynamic {}
static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(final self::Extension3|method2::T* #this) → dynamic {}
static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T* #this) → dynamic {}
static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(final self::Extension3|method4::T* #this) → dynamic {}
static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(final self::Extension4|method1::T* #this) → dynamic {}
static method Extension4|get#method1<T extends core::Object* = dynamic>(final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(final self::Extension4|method2::T* #this) → dynamic {}
static method Extension4|get#method2<T extends core::Object* = dynamic>(final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T* #this) → dynamic {}
static method Extension4|get#method3<T extends core::Object* = dynamic>(final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::Extension4|method4::T* #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object* = dynamic>(final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
static method main() → dynamic {}
@@ -42,52 +42,52 @@ extension Extension4<T extends core::Object* = dynamic> on T* {
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(final self::Extension1|method1::T* #this) → dynamic {}
static method Extension1|get#method1<T extends core::Object* = core::Object*>(final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(final self::Extension1|method2::T* #this) → dynamic {}
static method Extension1|get#method2<T extends core::Object* = core::Object*>(final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(final self::Extension1|method3::T* #this) → dynamic {}
static method Extension1|get#method3<T extends core::Object* = core::Object*>(final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(final self::Extension1|method4::T* #this) → dynamic {}
static method Extension1|get#method4<T extends core::Object* = core::Object*>(final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(final self::Extension2|method1::T* #this) → dynamic {}
static method Extension2|get#method1<T extends core::String* = core::String*>(final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(final self::Extension2|method2::T* #this) → dynamic {}
static method Extension2|get#method2<T extends core::String* = core::String*>(final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(final self::Extension2|method3::T* #this) → dynamic {}
static method Extension2|get#method3<T extends core::String* = core::String*>(final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(final self::Extension2|method4::T* #this) → dynamic {}
static method Extension2|get#method4<T extends core::String* = core::String*>(final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(final self::Extension3|method1::T* #this) → dynamic {}
static method Extension3|get#method1<T extends dynamic = dynamic>(final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(final self::Extension3|method2::T* #this) → dynamic {}
static method Extension3|get#method2<T extends dynamic = dynamic>(final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(final self::Extension3|method3::T* #this) → dynamic {}
static method Extension3|get#method3<T extends dynamic = dynamic>(final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(final self::Extension3|method4::T* #this) → dynamic {}
static method Extension3|get#method4<T extends dynamic = dynamic>(final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(final self::Extension4|method1::T* #this) → dynamic {}
static method Extension4|get#method1<T extends core::Object* = dynamic>(final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(final self::Extension4|method2::T* #this) → dynamic {}
static method Extension4|get#method2<T extends core::Object* = dynamic>(final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(final self::Extension4|method3::T* #this) → dynamic {}
static method Extension4|get#method3<T extends core::Object* = dynamic>(final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::Extension4|method4::T* #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object* = dynamic>(final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
static method main() → dynamic {}
@@ -51,11 +51,11 @@ static field self::A* a;
static field core::String* topLevel5;
static field self::B* b;
static field core::String* topLevel6;
static method _extension#0|get#call(final core::int* #this) → core::String*
static method _extension#0|get#call(lowered final core::int* #this) → core::String*
;
static method _extension#1|get#call(final core::num* #this) → core::String*
static method _extension#1|get#call(lowered final core::num* #this) → core::String*
;
static method _extension#2|get#call(final core::String* #this) → () →* core::String*
static method _extension#2|get#call(lowered final core::String* #this) → () →* core::String*
;
static method main() → dynamic
;
@@ -166,11 +166,11 @@ static field core::String* topLevel6 = invalid-expression "pkg/front_end/testcas
Try changing 'call' to a method or explicitly invoke 'call'.
var topLevel6 = a(2, \"3\");
^" as{TypeError,ForDynamic} core::String*;
static method _extension#0|get#call(final core::int* #this) → core::String*
static method _extension#0|get#call(lowered final core::int* #this) → core::String*
return "My name is int";
static method _extension#1|get#call(final core::num* #this) → core::String*
static method _extension#1|get#call(lowered final core::num* #this) → core::String*
return "My name is num";
static method _extension#2|get#call(final core::String* #this) → () →* core::String*
static method _extension#2|get#call(lowered final core::String* #this) → () →* core::String*
return () → core::String* => "My name is String";
static method main() → dynamic {
self::_extension#2|get#call("").call();
@@ -73,13 +73,13 @@ static final field dynamic field26;
static final field dynamic field27;
static final field dynamic field28;
static final field dynamic field29;
static method Extension|method<T extends self::B* = self::B*>(final self::Class<self::Extension|method::T*>* #this) → dynamic
static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic
;
static method Extension|get#method<T extends self::B* = self::B*>(final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic
static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic
;
static method Extension|get#genericMethod<T extends self::B* = self::B*>(final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic
;
@@ -885,11 +885,11 @@ static final field dynamic field26 = self::Extension|genericMethod<self::A*, sel
static final field dynamic field27 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field28 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field29 = self::Extension|genericMethod<self::B*, self::B*>(self::classB, self::a as{TypeError} self::B*);
static method Extension|method<T extends self::B* = self::B*>(final self::Class<self::Extension|method::T*>* #this) → dynamic {}
static method Extension|get#method<T extends self::B* = self::B*>(final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
static method Extension|get#genericMethod<T extends self::B* = self::B*>(final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic {}
static method test() → dynamic {
@@ -885,11 +885,11 @@ static final field dynamic field26 = self::Extension|genericMethod<self::A*, sel
static final field dynamic field27 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field28 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field29 = self::Extension|genericMethod<self::B*, self::B*>(self::classB, self::a as{TypeError} self::B*);
static method Extension|method<T extends self::B* = self::B*>(final self::Class<self::Extension|method::T*>* #this) → dynamic {}
static method Extension|get#method<T extends self::B* = self::B*>(final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
static method Extension|get#genericMethod<T extends self::B* = self::B*>(final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic {}
static method test() → dynamic {
@@ -66,25 +66,25 @@ extension IntClassExtension on self::IntClass* {
tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
set property = self::IntClassExtension|set#property;
}
static method NumberExtension|+(final self::Number* #this, core::Object* other) → self::Number*
static method NumberExtension|+(lowered final self::Number* #this, core::Object* other) → self::Number*
;
static method NumberExtension|-(final self::Number* #this, core::Object* other) → self::Number*
static method NumberExtension|-(lowered final self::Number* #this, core::Object* other) → self::Number*
;
static method ClassExtension|get#property(final self::Class* #this) → self::Number*
static method ClassExtension|get#property(lowered final self::Class* #this) → self::Number*
;
static method ClassExtension|set#property(final self::Class* #this, self::Number* value) → void
static method ClassExtension|set#property(lowered final self::Class* #this, self::Number* value) → void
;
static method ClassExtension|testImplicitProperties(final self::Class* #this) → dynamic
static method ClassExtension|testImplicitProperties(lowered final self::Class* #this) → dynamic
;
static method ClassExtension|get#testImplicitProperties(final self::Class* #this) → () →* dynamic
static method ClassExtension|get#testImplicitProperties(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::ClassExtension|testImplicitProperties(#this);
static method IntClassExtension|get#property(final self::IntClass* #this) → core::int*
static method IntClassExtension|get#property(lowered final self::IntClass* #this) → core::int*
;
static method IntClassExtension|set#property(final self::IntClass* #this, core::int* value) → void
static method IntClassExtension|set#property(lowered final self::IntClass* #this, core::int* value) → void
;
static method IntClassExtension|testImplicitProperties(final self::IntClass* #this) → dynamic
static method IntClassExtension|testImplicitProperties(lowered final self::IntClass* #this) → dynamic
;
static method IntClassExtension|get#testImplicitProperties(final self::IntClass* #this) → () →* dynamic
static method IntClassExtension|get#testImplicitProperties(lowered final self::IntClass* #this) → () →* dynamic
return () → dynamic => self::IntClassExtension|testImplicitProperties(#this);
static method main() → dynamic
;
@@ -69,7 +69,7 @@ extension IntClassExtension on self::IntClass* {
tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
set property = self::IntClassExtension|set#property;
}
static method NumberExtension|+(final self::Number* #this, core::Object* other) → self::Number* {
static method NumberExtension|+(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::+}(other{core::int*}));
}
@@ -81,7 +81,7 @@ static method NumberExtension|+(final self::Number* #this, core::Object* other)
throw new core::ArgumentError::•("${other}");
}
}
static method NumberExtension|-(final self::Number* #this, core::Object* other) → self::Number* {
static method NumberExtension|-(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::-}(other{core::int*}));
}
@@ -93,12 +93,12 @@ static method NumberExtension|-(final self::Number* #this, core::Object* other)
throw new core::ArgumentError::•("${other}");
}
}
static method ClassExtension|get#property(final self::Class* #this) → self::Number*
static method ClassExtension|get#property(lowered final self::Class* #this) → self::Number*
return #this.{self::Class::field};
static method ClassExtension|set#property(final self::Class* #this, self::Number* value) → void {
static method ClassExtension|set#property(lowered final self::Class* #this, self::Number* value) → void {
#this.{self::Class::field} = value;
}
static method ClassExtension|testImplicitProperties(final self::Class* #this) → dynamic {
static method ClassExtension|testImplicitProperties(lowered final self::Class* #this) → dynamic {
self::Number* n0 = new self::Number::•(0);
self::Number* n1 = new self::Number::•(1);
self::Number* n2 = new self::Number::•(2);
@@ -133,14 +133,14 @@ static method ClassExtension|testImplicitProperties(final self::Class* #this)
self::ClassExtension|set#property(#this, self::NumberExtension|-(self::ClassExtension|get#property(#this), 1));
self::expect(n0, self::ClassExtension|get#property(#this));
}
static method ClassExtension|get#testImplicitProperties(final self::Class* #this) → () →* dynamic
static method ClassExtension|get#testImplicitProperties(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::ClassExtension|testImplicitProperties(#this);
static method IntClassExtension|get#property(final self::IntClass* #this) → core::int*
static method IntClassExtension|get#property(lowered final self::IntClass* #this) → core::int*
return #this.{self::IntClass::field};
static method IntClassExtension|set#property(final self::IntClass* #this, core::int* value) → void {
static method IntClassExtension|set#property(lowered final self::IntClass* #this, core::int* value) → void {
#this.{self::IntClass::field} = value;
}
static method IntClassExtension|testImplicitProperties(final self::IntClass* #this) → dynamic {
static method IntClassExtension|testImplicitProperties(lowered final self::IntClass* #this) → dynamic {
core::int* n0 = 0;
core::int* n1 = 1;
core::int* n2 = 2;
@@ -175,7 +175,7 @@ static method IntClassExtension|testImplicitProperties(final self::IntClass* #th
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(1));
self::expect(n0, self::IntClassExtension|get#property(#this));
}
static method IntClassExtension|get#testImplicitProperties(final self::IntClass* #this) → () →* dynamic
static method IntClassExtension|get#testImplicitProperties(lowered final self::IntClass* #this) → () →* dynamic
return () → dynamic => self::IntClassExtension|testImplicitProperties(#this);
static method main() → dynamic {
self::testLocals();
@@ -69,7 +69,7 @@ extension IntClassExtension on self::IntClass* {
tearoff testImplicitProperties = self::IntClassExtension|get#testImplicitProperties;
set property = self::IntClassExtension|set#property;
}
static method NumberExtension|+(final self::Number* #this, core::Object* other) → self::Number* {
static method NumberExtension|+(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::+}(other{core::int*}));
}
@@ -81,7 +81,7 @@ static method NumberExtension|+(final self::Number* #this, core::Object* other)
throw new core::ArgumentError::•("${other}");
}
}
static method NumberExtension|-(final self::Number* #this, core::Object* other) → self::Number* {
static method NumberExtension|-(lowered final self::Number* #this, core::Object* other) → self::Number* {
if(other is core::int*) {
return new self::Number::•(#this.{self::Number::value}.{core::num::-}(other{core::int*}));
}
@@ -93,12 +93,12 @@ static method NumberExtension|-(final self::Number* #this, core::Object* other)
throw new core::ArgumentError::•("${other}");
}
}
static method ClassExtension|get#property(final self::Class* #this) → self::Number*
static method ClassExtension|get#property(lowered final self::Class* #this) → self::Number*
return #this.{self::Class::field};
static method ClassExtension|set#property(final self::Class* #this, self::Number* value) → void {
static method ClassExtension|set#property(lowered final self::Class* #this, self::Number* value) → void {
#this.{self::Class::field} = value;
}
static method ClassExtension|testImplicitProperties(final self::Class* #this) → dynamic {
static method ClassExtension|testImplicitProperties(lowered final self::Class* #this) → dynamic {
self::Number* n0 = new self::Number::•(0);
self::Number* n1 = new self::Number::•(1);
self::Number* n2 = new self::Number::•(2);
@@ -133,14 +133,14 @@ static method ClassExtension|testImplicitProperties(final self::Class* #this)
self::ClassExtension|set#property(#this, self::NumberExtension|-(self::ClassExtension|get#property(#this), 1));
self::expect(n0, self::ClassExtension|get#property(#this));
}
static method ClassExtension|get#testImplicitProperties(final self::Class* #this) → () →* dynamic
static method ClassExtension|get#testImplicitProperties(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::ClassExtension|testImplicitProperties(#this);
static method IntClassExtension|get#property(final self::IntClass* #this) → core::int*
static method IntClassExtension|get#property(lowered final self::IntClass* #this) → core::int*
return #this.{self::IntClass::field};
static method IntClassExtension|set#property(final self::IntClass* #this, core::int* value) → void {
static method IntClassExtension|set#property(lowered final self::IntClass* #this, core::int* value) → void {
#this.{self::IntClass::field} = value;
}
static method IntClassExtension|testImplicitProperties(final self::IntClass* #this) → dynamic {
static method IntClassExtension|testImplicitProperties(lowered final self::IntClass* #this) → dynamic {
core::int* n0 = 0;
core::int* n1 = 1;
core::int* n2 = 2;
@@ -175,7 +175,7 @@ static method IntClassExtension|testImplicitProperties(final self::IntClass* #th
self::IntClassExtension|set#property(#this, self::IntClassExtension|get#property(#this).{core::num::-}(1));
self::expect(n0, self::IntClassExtension|get#property(#this));
}
static method IntClassExtension|get#testImplicitProperties(final self::IntClass* #this) → () →* dynamic
static method IntClassExtension|get#testImplicitProperties(lowered final self::IntClass* #this) → () →* dynamic
return () → dynamic => self::IntClassExtension|testImplicitProperties(#this);
static method main() → dynamic {
self::testLocals();
@@ -33,15 +33,15 @@ extension Extension on core::String* {
static method toString = self::Extension|toString;
set hashCode = self::Extension|set#hashCode;
}
static method Extension|get#noSuchMethod(final core::String* #this) → core::int*
static method Extension|get#noSuchMethod(lowered final core::String* #this) → core::int*
;
static method Extension|set#hashCode(final core::String* #this, core::int* value) → void
static method Extension|set#hashCode(lowered final core::String* #this, core::int* value) → void
;
static method Extension|runtimeType(final core::String* #this) → core::int*
static method Extension|runtimeType(lowered final core::String* #this) → core::int*
;
static method Extension|get#runtimeType(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|==(final core::String* #this, dynamic other) → dynamic
static method Extension|==(lowered final core::String* #this, dynamic other) → dynamic
;
static method Extension|toString() → core::String*
;
@@ -48,13 +48,13 @@ extension Extension on core::String* {
static method toString = self::Extension|toString;
set hashCode = self::Extension|set#hashCode;
}
static method Extension|get#noSuchMethod(final core::String* #this) → core::int*
static method Extension|get#noSuchMethod(lowered final core::String* #this) → core::int*
return 42;
static method Extension|set#hashCode(final core::String* #this, core::int* value) → void {}
static method Extension|runtimeType(final core::String* #this) → core::int* {}
static method Extension|get#runtimeType(final core::String* #this) → () →* core::int*
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|==(final core::String* #this, dynamic other) → dynamic
static method Extension|==(lowered final core::String* #this, dynamic other) → dynamic
return false;
static method Extension|toString() → core::String*
return "Foo";
@@ -48,13 +48,13 @@ extension Extension on core::String* {
static method toString = self::Extension|toString;
set hashCode = self::Extension|set#hashCode;
}
static method Extension|get#noSuchMethod(final core::String* #this) → core::int*
static method Extension|get#noSuchMethod(lowered final core::String* #this) → core::int*
return 42;
static method Extension|set#hashCode(final core::String* #this, core::int* value) → void {}
static method Extension|runtimeType(final core::String* #this) → core::int* {}
static method Extension|get#runtimeType(final core::String* #this) → () →* core::int*
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|==(final core::String* #this, dynamic other) → dynamic
static method Extension|==(lowered final core::String* #this, dynamic other) → dynamic
return false;
static method Extension|toString() → core::String*
return "Foo";
@@ -57,17 +57,17 @@ extension UniqueExtensionName on self::Class1* {
method duplicateMethodName1 = self::UniqueExtensionName|duplicateMethodName1;
tearoff duplicateMethodName1 = self::UniqueExtensionName|get#duplicateMethodName1;
}
static method DuplicateExtensionName|uniqueMethod1(final self::Class1* #this) → dynamic
static method DuplicateExtensionName|uniqueMethod1(lowered final self::Class1* #this) → dynamic
;
static method DuplicateExtensionName|get#uniqueMethod1(final self::Class1* #this) → () →* dynamic
static method DuplicateExtensionName|get#uniqueMethod1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|uniqueMethod1(#this);
static method DuplicateExtensionName|duplicateMethodName2(final self::Class1* #this) → dynamic
static method DuplicateExtensionName|duplicateMethodName2(lowered final self::Class1* #this) → dynamic
;
static method DuplicateExtensionName|get#duplicateMethodName2(final self::Class1* #this) → () →* dynamic
static method DuplicateExtensionName|get#duplicateMethodName2(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|duplicateMethodName2(#this);
static method UniqueExtensionName|duplicateMethodName1(final self::Class1* #this) → dynamic
static method UniqueExtensionName|duplicateMethodName1(lowered final self::Class1* #this) → dynamic
;
static method UniqueExtensionName|get#duplicateMethodName1(final self::Class1* #this) → () →* dynamic
static method UniqueExtensionName|get#duplicateMethodName1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::UniqueExtensionName|duplicateMethodName1(#this);
static method main() → dynamic
;
@@ -65,16 +65,16 @@ extension UniqueExtensionName on self::Class1* {
method duplicateMethodName1 = self::UniqueExtensionName|duplicateMethodName1;
tearoff duplicateMethodName1 = self::UniqueExtensionName|get#duplicateMethodName1;
}
static method DuplicateExtensionName|uniqueMethod1(final self::Class1* #this) → dynamic {}
static method DuplicateExtensionName|get#uniqueMethod1(final self::Class1* #this) → () →* dynamic
static method DuplicateExtensionName|uniqueMethod1(lowered final self::Class1* #this) → dynamic {}
static method DuplicateExtensionName|get#uniqueMethod1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|uniqueMethod1(#this);
static method DuplicateExtensionName|duplicateMethodName2(final self::Class1* #this) → dynamic
static method DuplicateExtensionName|duplicateMethodName2(lowered final self::Class1* #this) → dynamic
return 1;
static method DuplicateExtensionName|get#duplicateMethodName2(final self::Class1* #this) → () →* dynamic
static method DuplicateExtensionName|get#duplicateMethodName2(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|duplicateMethodName2(#this);
static method UniqueExtensionName|duplicateMethodName1(final self::Class1* #this) → dynamic
static method UniqueExtensionName|duplicateMethodName1(lowered final self::Class1* #this) → dynamic
return 1;
static method UniqueExtensionName|get#duplicateMethodName1(final self::Class1* #this) → () →* dynamic
static method UniqueExtensionName|get#duplicateMethodName1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::UniqueExtensionName|duplicateMethodName1(#this);
static method main() → dynamic {
self::Class1* c1 = new self::Class1::•();
@@ -65,16 +65,16 @@ extension UniqueExtensionName on self::Class1* {
method duplicateMethodName1 = self::UniqueExtensionName|duplicateMethodName1;
tearoff duplicateMethodName1 = self::UniqueExtensionName|get#duplicateMethodName1;
}
static method DuplicateExtensionName|uniqueMethod1(final self::Class1* #this) → dynamic {}
static method DuplicateExtensionName|get#uniqueMethod1(final self::Class1* #this) → () →* dynamic
static method DuplicateExtensionName|uniqueMethod1(lowered final self::Class1* #this) → dynamic {}
static method DuplicateExtensionName|get#uniqueMethod1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|uniqueMethod1(#this);
static method DuplicateExtensionName|duplicateMethodName2(final self::Class1* #this) → dynamic
static method DuplicateExtensionName|duplicateMethodName2(lowered final self::Class1* #this) → dynamic
return 1;
static method DuplicateExtensionName|get#duplicateMethodName2(final self::Class1* #this) → () →* dynamic
static method DuplicateExtensionName|get#duplicateMethodName2(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::DuplicateExtensionName|duplicateMethodName2(#this);
static method UniqueExtensionName|duplicateMethodName1(final self::Class1* #this) → dynamic
static method UniqueExtensionName|duplicateMethodName1(lowered final self::Class1* #this) → dynamic
return 1;
static method UniqueExtensionName|get#duplicateMethodName1(final self::Class1* #this) → () →* dynamic
static method UniqueExtensionName|get#duplicateMethodName1(lowered final self::Class1* #this) → () →* dynamic
return () → dynamic => self::UniqueExtensionName|duplicateMethodName1(#this);
static method main() → dynamic {
self::Class1* c1 = new self::Class1::•();
@@ -27,21 +27,21 @@ extension Extension on self::Class* {
tearoff method3 = self::Extension|get#method3;
static method staticMethod = self::Extension|staticMethod;
}
static method Extension|method0(final self::Class* #this, [dynamic a]) → dynamic
static method Extension|method0(lowered final self::Class* #this, [dynamic a]) → dynamic
;
static method Extension|get#method0(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#method0(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a]) → dynamic => self::Extension|method0(#this, a);
static method Extension|method1(final self::Class* #this, [dynamic a]) → dynamic
static method Extension|method1(lowered final self::Class* #this, [dynamic a]) → dynamic
;
static method Extension|get#method1(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#method1(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a]) → dynamic => self::Extension|method1(#this, a);
static method Extension|method2(final self::Class* #this, {dynamic b}) → dynamic
static method Extension|method2(lowered final self::Class* #this, {dynamic b}) → dynamic
;
static method Extension|get#method2(final self::Class* #this) → ({b: dynamic}) →* dynamic
static method Extension|get#method2(lowered final self::Class* #this) → ({b: dynamic}) →* dynamic
return ({dynamic b}) → dynamic => self::Extension|method2(#this, b: b);
static method Extension|method3(final self::Class* #this, {dynamic c}) → dynamic
static method Extension|method3(lowered final self::Class* #this, {dynamic c}) → dynamic
;
static method Extension|get#method3(final self::Class* #this) → ({c: dynamic}) →* dynamic
static method Extension|get#method3(lowered final self::Class* #this) → ({c: dynamic}) →* dynamic
return ({dynamic c}) → dynamic => self::Extension|method3(#this, c: c);
static method Extension|staticMethod() → dynamic
;
@@ -28,21 +28,21 @@ extension Extension on self::Class* {
tearoff method3 = self::Extension|get#method3;
static method staticMethod = self::Extension|staticMethod;
}
static method Extension|method0(final self::Class* #this, [dynamic a = #C1]) → dynamic
static method Extension|method0(lowered final self::Class* #this, [dynamic a = #C1]) → dynamic
return a;
static method Extension|get#method0(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#method0(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C1]) → dynamic => self::Extension|method0(#this, a);
static method Extension|method1(final self::Class* #this, [dynamic a = #C2]) → dynamic
static method Extension|method1(lowered final self::Class* #this, [dynamic a = #C2]) → dynamic
return a;
static method Extension|get#method1(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#method1(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C2]) → dynamic => self::Extension|method1(#this, a);
static method Extension|method2(final self::Class* #this, {dynamic b = #C3}) → dynamic
static method Extension|method2(lowered final self::Class* #this, {dynamic b = #C3}) → dynamic
return b;
static method Extension|get#method2(final self::Class* #this) → ({b: dynamic}) →* dynamic
static method Extension|get#method2(lowered final self::Class* #this) → ({b: dynamic}) →* dynamic
return ({dynamic b = #C3}) → dynamic => self::Extension|method2(#this, b: b);
static method Extension|method3(final self::Class* #this, {dynamic c = #C4}) → dynamic
static method Extension|method3(lowered final self::Class* #this, {dynamic c = #C4}) → dynamic
return c.call();
static method Extension|get#method3(final self::Class* #this) → ({c: dynamic}) →* dynamic
static method Extension|get#method3(lowered final self::Class* #this) → ({c: dynamic}) →* dynamic
return ({dynamic c = #C4}) → dynamic => self::Extension|method3(#this, c: c);
static method Extension|staticMethod() → dynamic
return 123;
@@ -28,21 +28,21 @@ extension Extension on self::Class* {
tearoff method3 = self::Extension|get#method3;
static method staticMethod = self::Extension|staticMethod;
}
static method Extension|method0(final self::Class* #this, [dynamic a = #C1]) → dynamic
static method Extension|method0(lowered final self::Class* #this, [dynamic a = #C1]) → dynamic
return a;
static method Extension|get#method0(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#method0(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C1]) → dynamic => self::Extension|method0(#this, a);
static method Extension|method1(final self::Class* #this, [dynamic a = #C2]) → dynamic
static method Extension|method1(lowered final self::Class* #this, [dynamic a = #C2]) → dynamic
return a;
static method Extension|get#method1(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#method1(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic a = #C2]) → dynamic => self::Extension|method1(#this, a);
static method Extension|method2(final self::Class* #this, {dynamic b = #C3}) → dynamic
static method Extension|method2(lowered final self::Class* #this, {dynamic b = #C3}) → dynamic
return b;
static method Extension|get#method2(final self::Class* #this) → ({b: dynamic}) →* dynamic
static method Extension|get#method2(lowered final self::Class* #this) → ({b: dynamic}) →* dynamic
return ({dynamic b = #C3}) → dynamic => self::Extension|method2(#this, b: b);
static method Extension|method3(final self::Class* #this, {dynamic c = #C4}) → dynamic
static method Extension|method3(lowered final self::Class* #this, {dynamic c = #C4}) → dynamic
return c.call();
static method Extension|get#method3(final self::Class* #this) → ({c: dynamic}) →* dynamic
static method Extension|get#method3(lowered final self::Class* #this) → ({c: dynamic}) →* dynamic
return ({dynamic c = #C4}) → dynamic => self::Extension|method3(#this, c: c);
static method Extension|staticMethod() → dynamic
return 123;
@@ -38,13 +38,13 @@ static set Extension|staticProperty(core::int* value) → void
;
static method Extension|staticMethod() → core::int*
;
static method Extension|get#property(final core::int* #this) → core::int*
static method Extension|get#property(lowered final core::int* #this) → core::int*
;
static method Extension|set#property(final core::int* #this, core::int* value) → void
static method Extension|set#property(lowered final core::int* #this, core::int* value) → void
;
static method Extension|method(final core::int* #this) → core::int*
static method Extension|method(lowered final core::int* #this) → core::int*
;
static method Extension|get#method(final core::int* #this) → () →* core::int*
static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => self2::Extension|method(#this);
static get topLevelProperty() → core::int*
;
@@ -52,14 +52,14 @@ static set Extension|staticProperty(core::int* value) → void {
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
static method Extension|get#property(final core::int* #this) → core::int*
static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|set#property(final core::int* #this, core::int* value) → void {
static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
static method Extension|method(final core::int* #this) → core::int*
static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|get#method(final core::int* #this) → () →* core::int*
static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
@@ -78,14 +78,14 @@ static set Extension|staticProperty(core::int* value) → void {
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
static method Extension|get#property(final core::int* #this) → core::int*
static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|set#property(final core::int* #this, core::int* value) → void {
static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
static method Extension|method(final core::int* #this) → core::int*
static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|get#method(final core::int* #this) → () →* core::int*
static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
@@ -30,13 +30,13 @@ static set Extension|staticProperty(core::int* value) → void
;
static method Extension|staticMethod() → core::int*
;
static method Extension|get#property(final core::int* #this) → core::int*
static method Extension|get#property(lowered final core::int* #this) → core::int*
;
static method Extension|set#property(final core::int* #this, core::int* value) → void
static method Extension|set#property(lowered final core::int* #this, core::int* value) → void
;
static method Extension|method(final core::int* #this) → core::int*
static method Extension|method(lowered final core::int* #this) → core::int*
;
static method Extension|get#method(final core::int* #this) → () →* core::int*
static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => self2::Extension|method(#this);
static get topLevelProperty() → core::int*
;
@@ -43,14 +43,14 @@ static set Extension|staticProperty(core::int* value) → void {
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
static method Extension|get#property(final core::int* #this) → core::int*
static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|set#property(final core::int* #this, core::int* value) → void {
static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
static method Extension|method(final core::int* #this) → core::int*
static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|get#method(final core::int* #this) → () →* core::int*
static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
@@ -69,14 +69,14 @@ static set Extension|staticProperty(core::int* value) → void {
}
static method Extension|staticMethod() → core::int*
return def::Extension|staticField;
static method Extension|get#property(final core::int* #this) → core::int*
static method Extension|get#property(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|set#property(final core::int* #this, core::int* value) → void {
static method Extension|set#property(lowered final core::int* #this, core::int* value) → void {
def::Extension|staticField = value;
}
static method Extension|method(final core::int* #this) → core::int*
static method Extension|method(lowered final core::int* #this) → core::int*
return #this.{core::num::+}(def::Extension|staticField);
static method Extension|get#method(final core::int* #this) → () →* core::int*
static method Extension|get#method(lowered final core::int* #this) → () →* core::int*
return () → core::int* => def::Extension|method(#this);
static get topLevelProperty() → core::int*
return def::Extension|staticField;
@@ -85,103 +85,103 @@ extension GenericExtension<T extends core::Object* = dynamic> on self::GenericCl
tearoff getterCalls = self::GenericExtension|get#getterCalls;
set property = self::GenericExtension|set#property;
}
static method Extension|get#readGetter(final self::Class* #this) → () →* dynamic
static method Extension|get#readGetter(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|readGetter(#this);
static method Extension|readGetter(final self::Class* #this) → dynamic
static method Extension|readGetter(lowered final self::Class* #this) → dynamic
;
static method Extension|writeSetterRequired(final self::Class* #this, dynamic value) → dynamic
static method Extension|writeSetterRequired(lowered final self::Class* #this, dynamic value) → dynamic
;
static method Extension|get#writeSetterRequired(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#writeSetterRequired(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|writeSetterRequired(#this, value);
static method Extension|writeSetterOptional(final self::Class* #this, [dynamic value]) → dynamic
static method Extension|writeSetterOptional(lowered final self::Class* #this, [dynamic value]) → dynamic
;
static method Extension|get#writeSetterOptional(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#writeSetterOptional(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic value]) → dynamic => self::Extension|writeSetterOptional(#this, value);
static method Extension|writeSetterNamed(final self::Class* #this, {dynamic value}) → dynamic
static method Extension|writeSetterNamed(lowered final self::Class* #this, {dynamic value}) → dynamic
;
static method Extension|get#writeSetterNamed(final self::Class* #this) → ({value: dynamic}) →* dynamic
static method Extension|get#writeSetterNamed(lowered final self::Class* #this) → ({value: dynamic}) →* dynamic
return ({dynamic value}) → dynamic => self::Extension|writeSetterNamed(#this, value: value);
static method Extension|get#tearOffGetterNoArgs(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterNoArgs(lowered final self::Class* #this) → dynamic
;
static method Extension|get#tearOffGetterRequired(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterRequired(lowered final self::Class* #this) → dynamic
;
static method Extension|get#tearOffGetterOptional(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterOptional(lowered final self::Class* #this) → dynamic
;
static method Extension|get#tearOffGetterNamed(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterNamed(lowered final self::Class* #this) → dynamic
;
static method Extension|get#property(final self::Class* #this) → dynamic
static method Extension|get#property(lowered final self::Class* #this) → dynamic
;
static method Extension|set#property(final self::Class* #this, dynamic value) → void
static method Extension|set#property(lowered final self::Class* #this, dynamic value) → void
;
static method Extension|invocations(final self::Class* #this, dynamic value) → dynamic
static method Extension|invocations(lowered final self::Class* #this, dynamic value) → dynamic
;
static method Extension|get#invocations(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#invocations(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|invocations(#this, value);
static method Extension|get#tearOffs(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#tearOffs(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|tearOffs(#this, value);
static method Extension|tearOffs(final self::Class* #this, dynamic value) → dynamic
static method Extension|tearOffs(lowered final self::Class* #this, dynamic value) → dynamic
;
static method Extension|getterCalls(final self::Class* #this, dynamic value) → dynamic
static method Extension|getterCalls(lowered final self::Class* #this, dynamic value) → dynamic
;
static method Extension|get#getterCalls(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#getterCalls(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|getterCalls(#this, value);
static method GenericExtension|readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T*
static method GenericExtension|readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T*
;
static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
return () → self::GenericExtension|get#readGetter::T* => self::GenericExtension|readGetter<self::GenericExtension|get#readGetter::T*>(#this);
static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic
static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic
;
static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
return (self::GenericExtension|get#writeSetterRequired::T* value) → dynamic => self::GenericExtension|writeSetterRequired<self::GenericExtension|get#writeSetterRequired::T*>(#this, value);
static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value]) → dynamic
static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value]) → dynamic
;
static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
return ([self::GenericExtension|get#writeSetterOptional::T* value]) → dynamic => self::GenericExtension|writeSetterOptional<self::GenericExtension|get#writeSetterOptional::T*>(#this, value);
static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value}) → dynamic
static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value}) → dynamic
;
static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
return ({self::GenericExtension|get#writeSetterNamed::T* value}) → dynamic => self::GenericExtension|writeSetterNamed<self::GenericExtension|get#writeSetterNamed::T*>(#this, value: value);
static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic
static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic
;
static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S* value) → dynamic => self::GenericExtension|genericWriteSetterRequired<self::GenericExtension|get#genericWriteSetterRequired::T*, S*>(#this, value);
static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value]) → dynamic
static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value]) → dynamic
;
static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S* value]) → dynamic => self::GenericExtension|genericWriteSetterOptional<self::GenericExtension|get#genericWriteSetterOptional::T*, S*>(#this, value);
static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({S* value}) → dynamic => self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|get#genericWriteSetterNamed::T*, S*>(#this, value: value);
static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value}) → dynamic
static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value}) → dynamic
;
static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
;
static method GenericExtension|set#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void
static method GenericExtension|set#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void
;
static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
;
static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
;
static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
;
static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
;
static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
;
static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
;
static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
;
static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic
static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic
;
static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#invocations::T* = dynamic>(S* value) → dynamic => self::GenericExtension|invocations<self::GenericExtension|get#invocations::T*, S*>(#this, value);
static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic
static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic
;
static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S* value) → dynamic => self::GenericExtension|tearOffs<self::GenericExtension|get#tearOffs::T*, S*>(#this, value);
static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic
static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic
;
static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S* value) → dynamic => self::GenericExtension|getterCalls<self::GenericExtension|get#getterCalls::T*, S*>(#this, value);
static method main() → dynamic
;
@@ -87,40 +87,40 @@ extension GenericExtension<T extends core::Object* = dynamic> on self::GenericCl
tearoff getterCalls = self::GenericExtension|get#getterCalls;
set property = self::GenericExtension|set#property;
}
static method Extension|get#readGetter(final self::Class* #this) → () →* dynamic
static method Extension|get#readGetter(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|readGetter(#this);
static method Extension|readGetter(final self::Class* #this) → dynamic {
static method Extension|readGetter(lowered final self::Class* #this) → dynamic {
return self::Extension|get#property(#this);
}
static method Extension|writeSetterRequired(final self::Class* #this, dynamic value) → dynamic {
static method Extension|writeSetterRequired(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|set#property(#this, value);
}
static method Extension|get#writeSetterRequired(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#writeSetterRequired(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|writeSetterRequired(#this, value);
static method Extension|writeSetterOptional(final self::Class* #this, [dynamic value = #C1]) → dynamic {
static method Extension|writeSetterOptional(lowered final self::Class* #this, [dynamic value = #C1]) → dynamic {
self::Extension|set#property(#this, value);
}
static method Extension|get#writeSetterOptional(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#writeSetterOptional(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic value = #C1]) → dynamic => self::Extension|writeSetterOptional(#this, value);
static method Extension|writeSetterNamed(final self::Class* #this, {dynamic value = #C1}) → dynamic {
static method Extension|writeSetterNamed(lowered final self::Class* #this, {dynamic value = #C1}) → dynamic {
self::Extension|set#property(#this, value);
}
static method Extension|get#writeSetterNamed(final self::Class* #this) → ({value: dynamic}) →* dynamic
static method Extension|get#writeSetterNamed(lowered final self::Class* #this) → ({value: dynamic}) →* dynamic
return ({dynamic value = #C1}) → dynamic => self::Extension|writeSetterNamed(#this, value: value);
static method Extension|get#tearOffGetterNoArgs(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterNoArgs(lowered final self::Class* #this) → dynamic
return self::Extension|get#readGetter(#this);
static method Extension|get#tearOffGetterRequired(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterRequired(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterRequired(#this);
static method Extension|get#tearOffGetterOptional(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterOptional(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterOptional(#this);
static method Extension|get#tearOffGetterNamed(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterNamed(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterNamed(#this);
static method Extension|get#property(final self::Class* #this) → dynamic
static method Extension|get#property(lowered final self::Class* #this) → dynamic
return #this.{self::Class::field};
static method Extension|set#property(final self::Class* #this, dynamic value) → void {
static method Extension|set#property(lowered final self::Class* #this, dynamic value) → void {
#this.{self::Class::field} = value;
}
static method Extension|invocations(final self::Class* #this, dynamic value) → dynamic {
static method Extension|invocations(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|readGetter(#this);
self::Extension|writeSetterRequired(#this, value);
self::Extension|writeSetterOptional(#this);
@@ -128,11 +128,11 @@ static method Extension|invocations(final self::Class* #this, dynamic value) →
self::Extension|writeSetterNamed(#this);
self::Extension|writeSetterNamed(#this, value: value);
}
static method Extension|get#invocations(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#invocations(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|invocations(#this, value);
static method Extension|get#tearOffs(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#tearOffs(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|tearOffs(#this, value);
static method Extension|tearOffs(final self::Class* #this, dynamic value) → dynamic {
static method Extension|tearOffs(lowered final self::Class* #this, dynamic value) → dynamic {
() →* dynamic tearOffNoArgs = self::Extension|get#readGetter(#this);
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = self::Extension|get#writeSetterRequired(#this);
@@ -144,7 +144,7 @@ static method Extension|tearOffs(final self::Class* #this, dynamic value) → dy
tearOffNamed.call();
tearOffNamed.call(value: value);
}
static method Extension|getterCalls(final self::Class* #this, dynamic value) → dynamic {
static method Extension|getterCalls(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|get#tearOffGetterNoArgs(#this).call();
self::Extension|get#tearOffGetterRequired(#this).call(value);
self::Extension|get#tearOffGetterOptional(#this).call();
@@ -152,63 +152,63 @@ static method Extension|getterCalls(final self::Class* #this, dynamic value) →
self::Extension|get#tearOffGetterNamed(#this).call();
self::Extension|get#tearOffGetterNamed(#this).call(value: value);
}
static method Extension|get#getterCalls(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#getterCalls(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|getterCalls(#this, value);
static method GenericExtension|readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
static method GenericExtension|readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
return self::GenericExtension|get#property<self::GenericExtension|readGetter::T*>(#this);
}
static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
return () → self::GenericExtension|get#readGetter::T* => self::GenericExtension|readGetter<self::GenericExtension|get#readGetter::T*>(#this);
static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterRequired::T*>(#this, value);
}
static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
return (self::GenericExtension|get#writeSetterRequired::T* value) → dynamic => self::GenericExtension|writeSetterRequired<self::GenericExtension|get#writeSetterRequired::T*>(#this, value);
static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterOptional::T*>(#this, value);
}
static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
return ([self::GenericExtension|get#writeSetterOptional::T* value = #C1]) → dynamic => self::GenericExtension|writeSetterOptional<self::GenericExtension|get#writeSetterOptional::T*>(#this, value);
static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterNamed::T*>(#this, value);
}
static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
return ({self::GenericExtension|get#writeSetterNamed::T* value = #C1}) → dynamic => self::GenericExtension|writeSetterNamed<self::GenericExtension|get#writeSetterNamed::T*>(#this, value: value);
static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterRequired::T*>(#this, value);
}
static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S* value) → dynamic => self::GenericExtension|genericWriteSetterRequired<self::GenericExtension|get#genericWriteSetterRequired::T*, S*>(#this, value);
static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterOptional::T*>(#this, value);
}
static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S* value = #C1]) → dynamic => self::GenericExtension|genericWriteSetterOptional<self::GenericExtension|get#genericWriteSetterOptional::T*, S*>(#this, value);
static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({S* value = #C1}) → dynamic => self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|get#genericWriteSetterNamed::T*, S*>(#this, value: value);
static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterNamed::T*>(#this, value);
}
static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return #this.{self::GenericClass::field};
static method GenericExtension|set#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
static method GenericExtension|set#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
#this.{self::GenericClass::field} = value;
}
static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
return self::GenericExtension|get#readGetter<self::GenericExtension|get#tearOffGetterNoArgs::T*>(#this);
static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterRequired<self::GenericExtension|get#tearOffGetterRequired::T*>(#this);
static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterOptional<self::GenericExtension|get#tearOffGetterOptional::T*>(#this);
static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterNamed<self::GenericExtension|get#tearOffGetterNamed::T*>(#this);
static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterRequired<self::GenericExtension|get#tearOffGetterGenericRequired::T*>(#this);
static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterOptional<self::GenericExtension|get#tearOffGetterGenericOptional::T*>(#this);
static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterNamed<self::GenericExtension|get#tearOffGetterGenericNamed::T*>(#this);
static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
self::GenericExtension|readGetter<self::GenericExtension|invocations::T*>(#this);
self::GenericExtension|writeSetterRequired<self::GenericExtension|invocations::T*>(#this, value);
self::GenericExtension|writeSetterOptional<self::GenericExtension|invocations::T*>(#this);
@@ -231,9 +231,9 @@ static method GenericExtension|invocations<T extends core::Object* = dynamic, S
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::T*>(#this, value: value);
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::S*>(#this, value: value);
}
static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#invocations::T* = dynamic>(S* value) → dynamic => self::GenericExtension|invocations<self::GenericExtension|get#invocations::T*, S*>(#this, value);
static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
() →* self::GenericExtension|tearOffs::T* tearOffNoArgs = self::GenericExtension|get#readGetter<self::GenericExtension|tearOffs::T*>(#this);
tearOffNoArgs.call();
(self::GenericExtension|tearOffs::T*) →* dynamic tearOffRequired = self::GenericExtension|get#writeSetterRequired<self::GenericExtension|tearOffs::T*>(#this);
@@ -263,9 +263,9 @@ static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S ext
genericTearOffNamed.call<self::GenericExtension|tearOffs::T*>(value: value);
genericTearOffNamed.call<self::GenericExtension|tearOffs::S*>(value: value);
}
static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S* value) → dynamic => self::GenericExtension|tearOffs<self::GenericExtension|get#tearOffs::T*, S*>(#this, value);
static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
self::GenericExtension|get#tearOffGetterNoArgs<self::GenericExtension|getterCalls::T*>(#this).call();
self::GenericExtension|get#tearOffGetterRequired<self::GenericExtension|getterCalls::T*>(#this).call(value);
self::GenericExtension|get#tearOffGetterOptional<self::GenericExtension|getterCalls::T*>(#this).call();
@@ -288,7 +288,7 @@ static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::T*>(value: value);
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::S*>(value: value);
}
static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S* value) → dynamic => self::GenericExtension|getterCalls<self::GenericExtension|get#getterCalls::T*, S*>(#this, value);
static method main() → dynamic {}
@@ -87,40 +87,40 @@ extension GenericExtension<T extends core::Object* = dynamic> on self::GenericCl
tearoff getterCalls = self::GenericExtension|get#getterCalls;
set property = self::GenericExtension|set#property;
}
static method Extension|get#readGetter(final self::Class* #this) → () →* dynamic
static method Extension|get#readGetter(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|readGetter(#this);
static method Extension|readGetter(final self::Class* #this) → dynamic {
static method Extension|readGetter(lowered final self::Class* #this) → dynamic {
return self::Extension|get#property(#this);
}
static method Extension|writeSetterRequired(final self::Class* #this, dynamic value) → dynamic {
static method Extension|writeSetterRequired(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|set#property(#this, value);
}
static method Extension|get#writeSetterRequired(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#writeSetterRequired(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|writeSetterRequired(#this, value);
static method Extension|writeSetterOptional(final self::Class* #this, [dynamic value = #C1]) → dynamic {
static method Extension|writeSetterOptional(lowered final self::Class* #this, [dynamic value = #C1]) → dynamic {
self::Extension|set#property(#this, value);
}
static method Extension|get#writeSetterOptional(final self::Class* #this) → ([dynamic]) →* dynamic
static method Extension|get#writeSetterOptional(lowered final self::Class* #this) → ([dynamic]) →* dynamic
return ([dynamic value = #C1]) → dynamic => self::Extension|writeSetterOptional(#this, value);
static method Extension|writeSetterNamed(final self::Class* #this, {dynamic value = #C1}) → dynamic {
static method Extension|writeSetterNamed(lowered final self::Class* #this, {dynamic value = #C1}) → dynamic {
self::Extension|set#property(#this, value);
}
static method Extension|get#writeSetterNamed(final self::Class* #this) → ({value: dynamic}) →* dynamic
static method Extension|get#writeSetterNamed(lowered final self::Class* #this) → ({value: dynamic}) →* dynamic
return ({dynamic value = #C1}) → dynamic => self::Extension|writeSetterNamed(#this, value: value);
static method Extension|get#tearOffGetterNoArgs(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterNoArgs(lowered final self::Class* #this) → dynamic
return self::Extension|get#readGetter(#this);
static method Extension|get#tearOffGetterRequired(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterRequired(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterRequired(#this);
static method Extension|get#tearOffGetterOptional(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterOptional(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterOptional(#this);
static method Extension|get#tearOffGetterNamed(final self::Class* #this) → dynamic
static method Extension|get#tearOffGetterNamed(lowered final self::Class* #this) → dynamic
return self::Extension|get#writeSetterNamed(#this);
static method Extension|get#property(final self::Class* #this) → dynamic
static method Extension|get#property(lowered final self::Class* #this) → dynamic
return #this.{self::Class::field};
static method Extension|set#property(final self::Class* #this, dynamic value) → void {
static method Extension|set#property(lowered final self::Class* #this, dynamic value) → void {
#this.{self::Class::field} = value;
}
static method Extension|invocations(final self::Class* #this, dynamic value) → dynamic {
static method Extension|invocations(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|readGetter(#this);
self::Extension|writeSetterRequired(#this, value);
self::Extension|writeSetterOptional(#this);
@@ -128,11 +128,11 @@ static method Extension|invocations(final self::Class* #this, dynamic value) →
self::Extension|writeSetterNamed(#this);
self::Extension|writeSetterNamed(#this, value: value);
}
static method Extension|get#invocations(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#invocations(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|invocations(#this, value);
static method Extension|get#tearOffs(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#tearOffs(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|tearOffs(#this, value);
static method Extension|tearOffs(final self::Class* #this, dynamic value) → dynamic {
static method Extension|tearOffs(lowered final self::Class* #this, dynamic value) → dynamic {
() →* dynamic tearOffNoArgs = self::Extension|get#readGetter(#this);
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = self::Extension|get#writeSetterRequired(#this);
@@ -144,7 +144,7 @@ static method Extension|tearOffs(final self::Class* #this, dynamic value) → dy
tearOffNamed.call();
tearOffNamed.call(value: value);
}
static method Extension|getterCalls(final self::Class* #this, dynamic value) → dynamic {
static method Extension|getterCalls(lowered final self::Class* #this, dynamic value) → dynamic {
self::Extension|get#tearOffGetterNoArgs(#this).call();
self::Extension|get#tearOffGetterRequired(#this).call(value);
self::Extension|get#tearOffGetterOptional(#this).call();
@@ -152,63 +152,63 @@ static method Extension|getterCalls(final self::Class* #this, dynamic value) →
self::Extension|get#tearOffGetterNamed(#this).call();
self::Extension|get#tearOffGetterNamed(#this).call(value: value);
}
static method Extension|get#getterCalls(final self::Class* #this) → (dynamic) →* dynamic
static method Extension|get#getterCalls(lowered final self::Class* #this) → (dynamic) →* dynamic
return (dynamic value) → dynamic => self::Extension|getterCalls(#this, value);
static method GenericExtension|readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
static method GenericExtension|readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|readGetter::T*>* #this) → self::GenericExtension|readGetter::T* {
return self::GenericExtension|get#property<self::GenericExtension|readGetter::T*>(#this);
}
static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
static method GenericExtension|get#readGetter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#readGetter::T*>* #this) → () →* self::GenericExtension|get#readGetter::T*
return () → self::GenericExtension|get#readGetter::T* => self::GenericExtension|readGetter<self::GenericExtension|get#readGetter::T*>(#this);
static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
static method GenericExtension|writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterRequired::T*>* #this, self::GenericExtension|writeSetterRequired::T* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterRequired::T*>(#this, value);
}
static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
static method GenericExtension|get#writeSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterRequired::T*>* #this) → (self::GenericExtension|get#writeSetterRequired::T*) →* dynamic
return (self::GenericExtension|get#writeSetterRequired::T* value) → dynamic => self::GenericExtension|writeSetterRequired<self::GenericExtension|get#writeSetterRequired::T*>(#this, value);
static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
static method GenericExtension|writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterOptional::T*>* #this, [self::GenericExtension|writeSetterOptional::T* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterOptional::T*>(#this, value);
}
static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
static method GenericExtension|get#writeSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterOptional::T*>* #this) → ([self::GenericExtension|get#writeSetterOptional::T*]) →* dynamic
return ([self::GenericExtension|get#writeSetterOptional::T* value = #C1]) → dynamic => self::GenericExtension|writeSetterOptional<self::GenericExtension|get#writeSetterOptional::T*>(#this, value);
static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
static method GenericExtension|writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|writeSetterNamed::T*>* #this, {self::GenericExtension|writeSetterNamed::T* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|writeSetterNamed::T*>(#this, value);
}
static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
static method GenericExtension|get#writeSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#writeSetterNamed::T*>* #this) → ({value: self::GenericExtension|get#writeSetterNamed::T*}) →* dynamic
return ({self::GenericExtension|get#writeSetterNamed::T* value = #C1}) → dynamic => self::GenericExtension|writeSetterNamed<self::GenericExtension|get#writeSetterNamed::T*>(#this, value: value);
static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
static method GenericExtension|genericWriteSetterRequired<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterRequired::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterRequired::T*>* #this, self::GenericExtension|genericWriteSetterRequired::S* value) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterRequired::T*>(#this, value);
}
static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#genericWriteSetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterRequired::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterRequired::T* = dynamic>(S* value) → dynamic => self::GenericExtension|genericWriteSetterRequired<self::GenericExtension|get#genericWriteSetterRequired::T*, S*>(#this, value);
static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
static method GenericExtension|genericWriteSetterOptional<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterOptional::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterOptional::T*>* #this, [self::GenericExtension|genericWriteSetterOptional::S* value = #C1]) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterOptional::T*>(#this, value);
}
static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
static method GenericExtension|get#genericWriteSetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterOptional::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S*]) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterOptional::T* = dynamic>([S* value = #C1]) → dynamic => self::GenericExtension|genericWriteSetterOptional<self::GenericExtension|get#genericWriteSetterOptional::T*, S*>(#this, value);
static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
static method GenericExtension|get#genericWriteSetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericWriteSetterNamed::T*>* #this) → <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({value: S*}) →* dynamic
return <S extends self::GenericExtension|get#genericWriteSetterNamed::T* = dynamic>({S* value = #C1}) → dynamic => self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|get#genericWriteSetterNamed::T*, S*>(#this, value: value);
static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
static method GenericExtension|genericWriteSetterNamed<T extends core::Object* = dynamic, S extends self::GenericExtension|genericWriteSetterNamed::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericWriteSetterNamed::T*>* #this, {self::GenericExtension|genericWriteSetterNamed::S* value = #C1}) → dynamic {
self::GenericExtension|set#property<self::GenericExtension|genericWriteSetterNamed::T*>(#this, value);
}
static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return #this.{self::GenericClass::field};
static method GenericExtension|set#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
static method GenericExtension|set#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#property::T*>* #this, self::GenericExtension|set#property::T* value) → void {
#this.{self::GenericClass::field} = value;
}
static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterNoArgs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNoArgs::T*>* #this) → dynamic
return self::GenericExtension|get#readGetter<self::GenericExtension|get#tearOffGetterNoArgs::T*>(#this);
static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterRequired::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterRequired<self::GenericExtension|get#tearOffGetterRequired::T*>(#this);
static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterOptional::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterOptional<self::GenericExtension|get#tearOffGetterOptional::T*>(#this);
static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterNamed::T*>* #this) → dynamic
return self::GenericExtension|get#writeSetterNamed<self::GenericExtension|get#tearOffGetterNamed::T*>(#this);
static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericRequired<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericRequired::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterRequired<self::GenericExtension|get#tearOffGetterGenericRequired::T*>(#this);
static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericOptional<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericOptional::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterOptional<self::GenericExtension|get#tearOffGetterGenericOptional::T*>(#this);
static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
static method GenericExtension|get#tearOffGetterGenericNamed<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffGetterGenericNamed::T*>* #this) → dynamic
return self::GenericExtension|get#genericWriteSetterNamed<self::GenericExtension|get#tearOffGetterGenericNamed::T*>(#this);
static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
static method GenericExtension|invocations<T extends core::Object* = dynamic, S extends self::GenericExtension|invocations::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|invocations::T*>* #this, self::GenericExtension|invocations::S* value) → dynamic {
self::GenericExtension|readGetter<self::GenericExtension|invocations::T*>(#this);
self::GenericExtension|writeSetterRequired<self::GenericExtension|invocations::T*>(#this, value);
self::GenericExtension|writeSetterOptional<self::GenericExtension|invocations::T*>(#this);
@@ -231,9 +231,9 @@ static method GenericExtension|invocations<T extends core::Object* = dynamic, S
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::T*>(#this, value: value);
self::GenericExtension|genericWriteSetterNamed<self::GenericExtension|invocations::T*, self::GenericExtension|invocations::S*>(#this, value: value);
}
static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#invocations<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#invocations::T*>* #this) → <S extends self::GenericExtension|get#invocations::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#invocations::T* = dynamic>(S* value) → dynamic => self::GenericExtension|invocations<self::GenericExtension|get#invocations::T*, S*>(#this, value);
static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S extends self::GenericExtension|tearOffs::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|tearOffs::T*>* #this, self::GenericExtension|tearOffs::S* value) → dynamic {
() →* self::GenericExtension|tearOffs::T* tearOffNoArgs = self::GenericExtension|get#readGetter<self::GenericExtension|tearOffs::T*>(#this);
tearOffNoArgs.call();
(self::GenericExtension|tearOffs::T*) →* dynamic tearOffRequired = self::GenericExtension|get#writeSetterRequired<self::GenericExtension|tearOffs::T*>(#this);
@@ -263,9 +263,9 @@ static method GenericExtension|tearOffs<T extends core::Object* = dynamic, S ext
genericTearOffNamed.call<self::GenericExtension|tearOffs::T*>(value: value);
genericTearOffNamed.call<self::GenericExtension|tearOffs::S*>(value: value);
}
static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#tearOffs<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#tearOffs::T*>* #this) → <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#tearOffs::T* = dynamic>(S* value) → dynamic => self::GenericExtension|tearOffs<self::GenericExtension|get#tearOffs::T*, S*>(#this, value);
static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S extends self::GenericExtension|getterCalls::T* = dynamic>(lowered final self::GenericClass<self::GenericExtension|getterCalls::T*>* #this, self::GenericExtension|getterCalls::S* value) → dynamic {
self::GenericExtension|get#tearOffGetterNoArgs<self::GenericExtension|getterCalls::T*>(#this).call();
self::GenericExtension|get#tearOffGetterRequired<self::GenericExtension|getterCalls::T*>(#this).call(value);
self::GenericExtension|get#tearOffGetterOptional<self::GenericExtension|getterCalls::T*>(#this).call();
@@ -288,7 +288,7 @@ static method GenericExtension|getterCalls<T extends core::Object* = dynamic, S
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::T*>(value: value);
self::GenericExtension|get#tearOffGetterGenericNamed<self::GenericExtension|getterCalls::T*>(#this).call<self::GenericExtension|getterCalls::S*>(value: value);
}
static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
static method GenericExtension|get#getterCalls<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#getterCalls::T*>* #this) → <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S*) →* dynamic
return <S extends self::GenericExtension|get#getterCalls::T* = dynamic>(S* value) → dynamic => self::GenericExtension|getterCalls<self::GenericExtension|get#getterCalls::T*, S*>(#this, value);
static method main() → dynamic {}
@@ -89,21 +89,21 @@ static method Extension|fieldAccessFromStaticContext() → dynamic
;
static method Extension|getterCallsFromStaticContext(core::int* value) → dynamic
;
static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic
static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic
;
static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#invocationsFromInstanceContext::T* value) → dynamic => self::Extension|invocationsFromInstanceContext<self::Extension|get#invocationsFromInstanceContext::T*>(#this, value);
static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic
static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic
;
static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#tearOffsFromInstanceContext::T* value) → dynamic => self::Extension|tearOffsFromInstanceContext<self::Extension|get#tearOffsFromInstanceContext::T*>(#this, value);
static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic
static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic
;
static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|fieldAccessFromInstanceContext<self::Extension|get#fieldAccessFromInstanceContext::T*>(#this);
static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic
static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic
;
static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#getterCallsFromInstanceContext::T* value) → dynamic => self::Extension|getterCallsFromInstanceContext<self::Extension|get#getterCallsFromInstanceContext::T*>(#this, value);
static method main() → dynamic
;
@@ -155,7 +155,7 @@ static method Extension|getterCallsFromStaticContext(core::int* value) → dynam
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<core::int*>(value: value);
}
static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
self::Extension|readGetter();
self::Extension|writeSetterRequired(value);
self::Extension|writeSetterOptional();
@@ -173,9 +173,9 @@ static method Extension|invocationsFromInstanceContext<T extends core::Object* =
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
}
static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#invocationsFromInstanceContext::T* value) → dynamic => self::Extension|invocationsFromInstanceContext<self::Extension|get#invocationsFromInstanceContext::T*>(#this, value);
static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
() →* dynamic tearOffNoArgs = #C2;
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = #C3;
@@ -200,15 +200,15 @@ static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dy
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
}
static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#tearOffsFromInstanceContext::T* value) → dynamic => self::Extension|tearOffsFromInstanceContext<self::Extension|get#tearOffsFromInstanceContext::T*>(#this, value);
static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
self::Extension|field = self::Extension|property;
self::Extension|property = self::Extension|field;
}
static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|fieldAccessFromInstanceContext<self::Extension|get#fieldAccessFromInstanceContext::T*>(#this);
static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
self::Extension|tearOffGetterNoArgs.call();
self::Extension|tearOffGetterRequired.call(value);
self::Extension|tearOffGetterOptional.call();
@@ -226,7 +226,7 @@ static method Extension|getterCallsFromInstanceContext<T extends core::Object* =
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<self::Extension|getterCallsFromInstanceContext::T*>(value: value);
}
static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#getterCallsFromInstanceContext::T* value) → dynamic => self::Extension|getterCallsFromInstanceContext<self::Extension|get#getterCallsFromInstanceContext::T*>(#this, value);
static method main() → dynamic {}
@@ -155,7 +155,7 @@ static method Extension|getterCallsFromStaticContext(core::int* value) → dynam
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<core::int*>(value: value);
}
static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
static method Extension|invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|invocationsFromInstanceContext::T*>* #this, self::Extension|invocationsFromInstanceContext::T* value) → dynamic {
self::Extension|readGetter();
self::Extension|writeSetterRequired(value);
self::Extension|writeSetterOptional();
@@ -173,9 +173,9 @@ static method Extension|invocationsFromInstanceContext<T extends core::Object* =
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
self::Extension|genericWriteSetterNamed<self::Extension|invocationsFromInstanceContext::T*>(value: value);
}
static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
static method Extension|get#invocationsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#invocationsFromInstanceContext::T*>* #this) → (self::Extension|get#invocationsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#invocationsFromInstanceContext::T* value) → dynamic => self::Extension|invocationsFromInstanceContext<self::Extension|get#invocationsFromInstanceContext::T*>(#this, value);
static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|tearOffsFromInstanceContext::T*>* #this, self::Extension|tearOffsFromInstanceContext::T* value) → dynamic {
() →* dynamic tearOffNoArgs = #C2;
tearOffNoArgs.call();
(dynamic) →* dynamic tearOffRequired = #C3;
@@ -200,15 +200,15 @@ static method Extension|tearOffsFromInstanceContext<T extends core::Object* = dy
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
tearOffGenericNamed.call<self::Extension|tearOffsFromInstanceContext::T*>(value: value);
}
static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
static method Extension|get#tearOffsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#tearOffsFromInstanceContext::T*>* #this) → (self::Extension|get#tearOffsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#tearOffsFromInstanceContext::T* value) → dynamic => self::Extension|tearOffsFromInstanceContext<self::Extension|get#tearOffsFromInstanceContext::T*>(#this, value);
static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
static method Extension|fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|fieldAccessFromInstanceContext::T*>* #this) → dynamic {
self::Extension|field = self::Extension|property;
self::Extension|property = self::Extension|field;
}
static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
static method Extension|get#fieldAccessFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#fieldAccessFromInstanceContext::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|fieldAccessFromInstanceContext<self::Extension|get#fieldAccessFromInstanceContext::T*>(#this);
static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
static method Extension|getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|getterCallsFromInstanceContext::T*>* #this, self::Extension|getterCallsFromInstanceContext::T* value) → dynamic {
self::Extension|tearOffGetterNoArgs.call();
self::Extension|tearOffGetterRequired.call(value);
self::Extension|tearOffGetterOptional.call();
@@ -226,7 +226,7 @@ static method Extension|getterCallsFromInstanceContext<T extends core::Object* =
self::Extension|tearOffGetterGenericNamed.call(value: value);
self::Extension|tearOffGetterGenericNamed.call<self::Extension|getterCallsFromInstanceContext::T*>(value: value);
}
static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
static method Extension|get#getterCallsFromInstanceContext<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#getterCallsFromInstanceContext::T*>* #this) → (self::Extension|get#getterCallsFromInstanceContext::T*) →* dynamic
return (self::Extension|get#getterCallsFromInstanceContext::T* value) → dynamic => self::Extension|getterCallsFromInstanceContext<self::Extension|get#getterCallsFromInstanceContext::T*>(#this, value);
static method main() → dynamic {}
@@ -25,13 +25,13 @@ extension Extension on dynamic {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method ClassExtension|method(final self::Class* #this) → core::int*
static method ClassExtension|method(lowered final self::Class* #this) → core::int*
;
static method ClassExtension|get#method(final self::Class* #this) → () →* core::int*
static method ClassExtension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::ClassExtension|method(#this);
static method Extension|method(final dynamic #this) → core::int*
static method Extension|method(lowered final dynamic #this) → core::int*
;
static method Extension|get#method(final dynamic #this) → () →* core::int*
static method Extension|get#method(lowered final dynamic #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic
;
@@ -26,13 +26,13 @@ extension Extension on dynamic {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method ClassExtension|method(final self::Class* #this) → core::int*
static method ClassExtension|method(lowered final self::Class* #this) → core::int*
return 42;
static method ClassExtension|get#method(final self::Class* #this) → () →* core::int*
static method ClassExtension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::ClassExtension|method(#this);
static method Extension|method(final dynamic #this) → core::int*
static method Extension|method(lowered final dynamic #this) → core::int*
return 87;
static method Extension|get#method(final dynamic #this) → () →* core::int*
static method Extension|get#method(lowered final dynamic #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic {
dynamic c0 = new self::Class::•();
@@ -26,13 +26,13 @@ extension Extension on dynamic {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method ClassExtension|method(final self::Class* #this) → core::int*
static method ClassExtension|method(lowered final self::Class* #this) → core::int*
return 42;
static method ClassExtension|get#method(final self::Class* #this) → () →* core::int*
static method ClassExtension|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::ClassExtension|method(#this);
static method Extension|method(final dynamic #this) → core::int*
static method Extension|method(lowered final dynamic #this) → core::int*
return 87;
static method Extension|get#method(final dynamic #this) → () →* core::int*
static method Extension|get#method(lowered final dynamic #this) → () →* core::int*
return () → core::int* => self::Extension|method(#this);
static method main() → dynamic {
dynamic c0 = new self::Class::•();
@@ -34,29 +34,29 @@ extension Extension2 on self::Class* {
tearoff genericMethod = self::Extension2|get#genericMethod;
set field = self::Extension2|set#field;
}
static method Extension1|get#field(final self::Class* #this) → core::int*
static method Extension1|get#field(lowered final self::Class* #this) → core::int*
;
static method Extension1|set#field(final self::Class* #this, core::int* value) → void
static method Extension1|set#field(lowered final self::Class* #this, core::int* value) → void
;
static method Extension1|method(final self::Class* #this) → core::int*
static method Extension1|method(lowered final self::Class* #this) → core::int*
;
static method Extension1|get#method(final self::Class* #this) → () →* core::int*
static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
;
static method Extension1|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|get#field(final self::Class* #this) → core::int*
static method Extension2|get#field(lowered final self::Class* #this) → core::int*
;
static method Extension2|set#field(final self::Class* #this, core::int* value) → void
static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void
;
static method Extension2|method(final self::Class* #this) → core::int*
static method Extension2|method(lowered final self::Class* #this) → core::int*
;
static method Extension2|get#method(final self::Class* #this) → () →* core::int*
static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
;
static method Extension2|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic
;
@@ -35,31 +35,31 @@ extension Extension2 on self::Class* {
tearoff genericMethod = self::Extension2|get#genericMethod;
set field = self::Extension2|set#field;
}
static method Extension1|get#field(final self::Class* #this) → core::int*
static method Extension1|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
static method Extension1|set#field(final self::Class* #this, core::int* value) → void {
static method Extension1|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field1} = value;
}
static method Extension1|method(final self::Class* #this) → core::int*
static method Extension1|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
static method Extension1|get#method(final self::Class* #this) → () →* core::int*
static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} core::int*;
static method Extension1|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|get#field(final self::Class* #this) → core::int*
static method Extension2|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
static method Extension2|set#field(final self::Class* #this, core::int* value) → void {
static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field2} = value;
}
static method Extension2|method(final self::Class* #this) → core::int*
static method Extension2|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
static method Extension2|get#method(final self::Class* #this) → () →* core::int*
static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} core::int*;
static method Extension2|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::Class* c = new self::Class::•();
@@ -35,31 +35,31 @@ extension Extension2 on self::Class* {
tearoff genericMethod = self::Extension2|get#genericMethod;
set field = self::Extension2|set#field;
}
static method Extension1|get#field(final self::Class* #this) → core::int*
static method Extension1|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
static method Extension1|set#field(final self::Class* #this, core::int* value) → void {
static method Extension1|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field1} = value;
}
static method Extension1|method(final self::Class* #this) → core::int*
static method Extension1|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field1};
static method Extension1|get#method(final self::Class* #this) → () →* core::int*
static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
static method Extension1|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} core::int*;
static method Extension1|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|get#field(final self::Class* #this) → core::int*
static method Extension2|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
static method Extension2|set#field(final self::Class* #this, core::int* value) → void {
static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field2} = value;
}
static method Extension2|method(final self::Class* #this) → core::int*
static method Extension2|method(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
static method Extension2|get#method(final self::Class* #this) → () →* core::int*
static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
static method Extension2|genericMethod<T extends core::num* = core::num*>(final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} core::int*;
static method Extension2|get#genericMethod(final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::Class* c = new self::Class::•();
@@ -45,15 +45,15 @@ extension GenericExtension<T extends core::Object* = dynamic> on self::GenericCl
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
;
static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
;
static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
;
static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic
;
@@ -49,15 +49,15 @@ extension GenericExtension<T extends core::Object* = dynamic> on self::GenericCl
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return null;
static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
return null;
static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
return null;
static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic {
self::A* aVariable;
@@ -49,15 +49,15 @@ extension GenericExtension<T extends core::Object* = dynamic> on self::GenericCl
method genericMethod1 = self::GenericExtension|genericMethod1;
tearoff genericMethod1 = self::GenericExtension|get#genericMethod1;
}
static method GenericExtension|get#property<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
static method GenericExtension|get#property<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#property::T*>* #this) → self::GenericExtension|get#property::T*
return null;
static method GenericExtension|method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this, self::GenericExtension|method::T* t) → self::GenericExtension|method::T*
return null;
static method GenericExtension|get#method<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → (self::GenericExtension|get#method::T*) →* self::GenericExtension|get#method::T*
return (self::GenericExtension|get#method::T* t) → self::GenericExtension|get#method::T* => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this, t);
static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
static method GenericExtension|genericMethod1<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|genericMethod1::T*>* #this, self::GenericExtension|genericMethod1::S* s) → self::GenericExtension|genericMethod1::S*
return null;
static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
static method GenericExtension|get#genericMethod1<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#genericMethod1::T*>* #this) → <S extends core::Object* = dynamic>(S*) →* S*
return <S extends core::Object* = dynamic>(S* s) → S* => self::GenericExtension|genericMethod1<self::GenericExtension|get#genericMethod1::T*, S*>(#this, s);
static method main() → dynamic {
self::A* aVariable;
@@ -36,29 +36,29 @@ extension Extension2<T extends core::num* = core::num*> on self::Class<T*>* {
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
static method Extension1|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T*
static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T*
;
static method Extension1|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void
static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void
;
static method Extension1|method<T extends core::num* = core::num*>(final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T*
static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T*
;
static method Extension1|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T*
static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T*
;
static method Extension1|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
static method Extension2|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
;
static method Extension2|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void
static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void
;
static method Extension2|method<T extends core::num* = core::num*>(final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
;
static method Extension2|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
;
static method Extension2|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic
;
@@ -37,38 +37,38 @@ extension Extension2<T extends core::num* = core::num*> on self::Class<T*>* {
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
static method Extension1|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
self::Extension1|latestType = "${self::Extension1|get#field::T*}";
return #this.{self::Class::field1};
}
static method Extension1|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
self::Extension1|latestType = "${self::Extension1|set#field::T*}";
#this.{self::Class::field1} = value;
}
static method Extension1|method<T extends core::num* = core::num*>(final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
self::Extension1|latestType = "${self::Extension1|method::T*}";
return #this.{self::Class::field1};
}
static method Extension1|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
self::Extension1|latestType = "${self::Extension1|genericMethod::T*}:${self::Extension1|genericMethod::S*}";
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} self::Extension1|genericMethod::T*;
}
static method Extension1|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
static method Extension2|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
return #this.{self::Class::field2};
static method Extension2|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
#this.{self::Class::field2} = value;
}
static method Extension2|method<T extends core::num* = core::num*>(final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
return #this.{self::Class::field2};
static method Extension2|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} self::Extension2|genericMethod::T*;
static method Extension2|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>(42, 87);
@@ -37,38 +37,38 @@ extension Extension2<T extends core::num* = core::num*> on self::Class<T*>* {
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
static method Extension1|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
self::Extension1|latestType = "${self::Extension1|get#field::T*}";
return #this.{self::Class::field1};
}
static method Extension1|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
self::Extension1|latestType = "${self::Extension1|set#field::T*}";
#this.{self::Class::field1} = value;
}
static method Extension1|method<T extends core::num* = core::num*>(final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
self::Extension1|latestType = "${self::Extension1|method::T*}";
return #this.{self::Class::field1};
}
static method Extension1|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
self::Extension1|latestType = "${self::Extension1|genericMethod::T*}:${self::Extension1|genericMethod::S*}";
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} self::Extension1|genericMethod::T*;
}
static method Extension1|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
static method Extension2|get#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
return #this.{self::Class::field2};
static method Extension2|set#field<T extends core::num* = core::num*>(final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
#this.{self::Class::field2} = value;
}
static method Extension2|method<T extends core::num* = core::num*>(final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
return #this.{self::Class::field2};
static method Extension2|get#method<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} self::Extension2|genericMethod::T*;
static method Extension2|get#genericMethod<T extends core::num* = core::num*>(final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>(42, 87);
@@ -27,17 +27,17 @@ extension A2 on self::A1* {
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
static method A2|method2(final self::A1* #this) → void
static method A2|method2(lowered final self::A1* #this) → void
;
static method A2|get#method2(final self::A1* #this) → () →* void
static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
static method A2|method3(final self::A1* #this) → core::Object*
static method A2|method3(lowered final self::A1* #this) → core::Object*
;
static method A2|get#method3(final self::A1* #this) → () →* core::Object*
static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
static method A2|method4(final self::A1* #this, core::Object* o) → void
static method A2|method4(lowered final self::A1* #this, core::Object* o) → void
;
static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic
;
@@ -27,17 +27,17 @@ extension A2 on self::A1* {
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
static method A2|method2(final self::A1* #this) → void
static method A2|method2(lowered final self::A1* #this) → void
return #this.{self::A1::method1}();
static method A2|get#method2(final self::A1* #this) → () →* void
static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
static method A2|method3(final self::A1* #this) → core::Object*
static method A2|method3(lowered final self::A1* #this) → core::Object*
return #this.{self::A1::field};
static method A2|get#method3(final self::A1* #this) → () →* core::Object*
static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
static method A2|method4(final self::A1* #this, core::Object* o) → void {
static method A2|method4(lowered final self::A1* #this, core::Object* o) → void {
#this.{self::A1::field} = o;
}
static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic {}
@@ -27,17 +27,17 @@ extension A2 on self::A1* {
method method4 = self::A2|method4;
tearoff method4 = self::A2|get#method4;
}
static method A2|method2(final self::A1* #this) → void
static method A2|method2(lowered final self::A1* #this) → void
return #this.{self::A1::method1}();
static method A2|get#method2(final self::A1* #this) → () →* void
static method A2|get#method2(lowered final self::A1* #this) → () →* void
return () → void => self::A2|method2(#this);
static method A2|method3(final self::A1* #this) → core::Object*
static method A2|method3(lowered final self::A1* #this) → core::Object*
return #this.{self::A1::field};
static method A2|get#method3(final self::A1* #this) → () →* core::Object*
static method A2|get#method3(lowered final self::A1* #this) → () →* core::Object*
return () → core::Object* => self::A2|method3(#this);
static method A2|method4(final self::A1* #this, core::Object* o) → void {
static method A2|method4(lowered final self::A1* #this, core::Object* o) → void {
#this.{self::A1::field} = o;
}
static method A2|get#method4(final self::A1* #this) → (core::Object*) →* void
static method A2|get#method4(lowered final self::A1* #this) → (core::Object*) →* void
return (core::Object* o) → void => self::A2|method4(#this, o);
static method main() → dynamic {}
@@ -33,13 +33,13 @@ extension Extension on core::int* {
static field core::int* Extension|staticField;
static final field core::int* Extension|staticFinalField;
static const field core::int* Extension|staticConstField = #C1;
static method Extension|get#instanceProperty(final core::int* #this) → core::int*
static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
;
static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void
static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void
;
static method Extension|instanceMethod(final core::int* #this) → void
static method Extension|instanceMethod(lowered final core::int* #this) → void
;
static method Extension|get#instanceMethod(final core::int* #this) → () →* void
static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
;
@@ -43,11 +43,11 @@ extension Extension on core::int* {
static field core::int* Extension|staticField = 42;
static final field core::int* Extension|staticFinalField = 42;
static const field core::int* Extension|staticConstField = #C1;
static method Extension|get#instanceProperty(final core::int* #this) → core::int*
static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
return 42;
static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void {}
static method Extension|instanceMethod(final core::int* #this) → void {}
static method Extension|get#instanceMethod(final core::int* #this) → () →* void
static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void {}
static method Extension|instanceMethod(lowered final core::int* #this) → void {}
static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
return 42;
@@ -43,11 +43,11 @@ extension Extension on core::int* {
static field core::int* Extension|staticField = 42;
static final field core::int* Extension|staticFinalField = 42;
static const field core::int* Extension|staticConstField = #C1;
static method Extension|get#instanceProperty(final core::int* #this) → core::int*
static method Extension|get#instanceProperty(lowered final core::int* #this) → core::int*
return 42;
static method Extension|set#instanceProperty(final core::int* #this, core::int* value) → void {}
static method Extension|instanceMethod(final core::int* #this) → void {}
static method Extension|get#instanceMethod(final core::int* #this) → () →* void
static method Extension|set#instanceProperty(lowered final core::int* #this, core::int* value) → void {}
static method Extension|instanceMethod(lowered final core::int* #this) → void {}
static method Extension|get#instanceMethod(lowered final core::int* #this) → () →* void
return () → void => mai::Extension|instanceMethod(#this);
static get Extension|staticProperty() → core::int*
return 42;
@@ -29,9 +29,9 @@ extension Extension on self2::Class* {
method method = self2::Extension|method;
tearoff method = self2::Extension|get#method;
}
static method Extension|method(final self2::Class* #this) → dynamic
static method Extension|method(lowered final self2::Class* #this) → dynamic
;
static method Extension|get#method(final self2::Class* #this) → () →* dynamic
static method Extension|get#method(lowered final self2::Class* #this) → () →* dynamic
return () → dynamic => self2::Extension|method(#this);
library;
@@ -32,8 +32,8 @@ extension Extension on exp::Class* {
method method = exp::Extension|method;
tearoff method = exp::Extension|get#method;
}
static method Extension|method(final exp::Class* #this) → dynamic {}
static method Extension|get#method(final exp::Class* #this) → () →* dynamic
static method Extension|method(lowered final exp::Class* #this) → dynamic {}
static method Extension|get#method(lowered final exp::Class* #this) → () →* dynamic
return () → dynamic => exp::Extension|method(#this);
library;
@@ -32,8 +32,8 @@ extension Extension on exp::Class* {
method method = exp::Extension|method;
tearoff method = exp::Extension|get#method;
}
static method Extension|method(final exp::Class* #this) → dynamic {}
static method Extension|get#method(final exp::Class* #this) → () →* dynamic
static method Extension|method(lowered final exp::Class* #this) → dynamic {}
static method Extension|get#method(lowered final exp::Class* #this) → () →* dynamic
return () → dynamic => exp::Extension|method(#this);
library;
@@ -22,9 +22,9 @@ extension Extension<T extends core::Object* = dynamic> on self::Class<T*>* {
method call = self::Extension|call;
tearoff call = self::Extension|get#call;
}
static method Extension|call<T extends core::Object* = dynamic>(final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
static method Extension|call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
;
static method Extension|get#call<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
static method Extension|get#call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
return (self::Extension|get#call::T* a) → self::Extension|get#call::T* => self::Extension|call<self::Extension|get#call::T*>(#this, a);
static method main() → dynamic
;
@@ -23,9 +23,9 @@ extension Extension<T extends core::Object* = dynamic> on self::Class<T*>* {
method call = self::Extension|call;
tearoff call = self::Extension|get#call;
}
static method Extension|call<T extends core::Object* = dynamic>(final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
static method Extension|call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
return #this.{self::Class::method}(a);
static method Extension|get#call<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
static method Extension|get#call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
return (self::Extension|get#call::T* a) → self::Extension|get#call::T* => self::Extension|call<self::Extension|get#call::T*>(#this, a);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>();
@@ -23,9 +23,9 @@ extension Extension<T extends core::Object* = dynamic> on self::Class<T*>* {
method call = self::Extension|call;
tearoff call = self::Extension|get#call;
}
static method Extension|call<T extends core::Object* = dynamic>(final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
static method Extension|call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|call::T*>* #this, self::Extension|call::T* a) → self::Extension|call::T*
return #this.{self::Class::method}(a);
static method Extension|get#call<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
static method Extension|get#call<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#call::T*>* #this) → (self::Extension|get#call::T*) →* self::Extension|get#call::T*
return (self::Extension|get#call::T* a) → self::Extension|get#call::T* => self::Extension|call<self::Extension|get#call::T*>(#this, a);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>();
@@ -57,9 +57,9 @@ extension Extension on self::Class* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method Extension|method(final self::Class* #this) → dynamic
static method Extension|method(lowered final self::Class* #this) → dynamic
;
static method Extension|get#method(final self::Class* #this) → () →* dynamic
static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
static method main() → dynamic
;
@@ -58,7 +58,7 @@ extension Extension on self::Class* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method Extension|method(final self::Class* #this) → dynamic {}
static method Extension|get#method(final self::Class* #this) → () →* dynamic
static method Extension|method(lowered final self::Class* #this) → dynamic {}
static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
static method main() → dynamic {}
@@ -58,7 +58,7 @@ extension Extension on self::Class* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method Extension|method(final self::Class* #this) → dynamic {}
static method Extension|get#method(final self::Class* #this) → () →* dynamic
static method Extension|method(lowered final self::Class* #this) → dynamic {}
static method Extension|get#method(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|method(#this);
static method main() → dynamic {}
@@ -169,13 +169,13 @@ extension Extension<T extends core::Object* = dynamic> on core::int* {
set instanceSetterAndStaticField = self::Extension|set#instanceSetterAndStaticField;
}
static field core::int* Extension|duplicateStaticField;
static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → void
static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → void
;
static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → () →* void
static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → () →* void
return () → void => self::Extension|duplicateInstanceMethod<self::Extension|get#duplicateInstanceMethod::T*>(#this);
static get Extension|duplicateStaticGetter() → core::int*
;
@@ -183,17 +183,17 @@ static set Extension|duplicateStaticSetter(core::int* value) → void
;
static method Extension|duplicateStaticMethod() → void
;
static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static get Extension|duplicateStaticGetterPlusSetter() → core::int*
;
@@ -207,17 +207,17 @@ static get Extension|duplicateStaticGetterAndSetter() → core::int*
;
static set Extension|duplicateStaticGetterAndSetter(core::int* value) → void
;
static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
static set Extension|instanceGetterAndStaticSetter(core::int* value) → void
;
static get Extension|instanceSetterAndStaticGetter() → core::int*
;
static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
;
static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void
static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void
;
static method main() → dynamic
;
@@ -169,25 +169,25 @@ extension Extension<T extends core::Object* = dynamic> on core::int* {
set instanceSetterAndStaticField = self::Extension|set#instanceSetterAndStaticField;
}
static field core::int* Extension|duplicateStaticField;
static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → void {}
static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → () →* void
static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → void {}
static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → () →* void
return () → void => self::Extension|duplicateInstanceMethod<self::Extension|get#duplicateInstanceMethod::T*>(#this);
static get Extension|duplicateStaticGetter() → core::int*
return 0;
static set Extension|duplicateStaticSetter(core::int* value) → void {}
static method Extension|duplicateStaticMethod() → void {}
static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static get Extension|duplicateStaticGetterPlusSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterPlusSetter(core::int* value) → void {}
@@ -197,13 +197,13 @@ static set Extension|duplicateStaticSetterPlusGetter(core::int* value) → void
static get Extension|duplicateStaticGetterAndSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterAndSetter(core::int* value) → void {}
static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static set Extension|instanceGetterAndStaticSetter(core::int* value) → void {}
static get Extension|instanceSetterAndStaticGetter() → core::int*
return 0;
static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method main() → dynamic {}
@@ -169,25 +169,25 @@ extension Extension<T extends core::Object* = dynamic> on core::int* {
set instanceSetterAndStaticField = self::Extension|set#instanceSetterAndStaticField;
}
static field core::int* Extension|duplicateStaticField;
static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → void {}
static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(final core::int* #this) → () →* void
static method Extension|set#duplicateInstanceSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → void {}
static method Extension|get#duplicateInstanceMethod<T extends core::Object* = dynamic>(lowered final core::int* #this) → () →* void
return () → void => self::Extension|duplicateInstanceMethod<self::Extension|get#duplicateInstanceMethod::T*>(#this);
static get Extension|duplicateStaticGetter() → core::int*
return 0;
static set Extension|duplicateStaticSetter(core::int* value) → void {}
static method Extension|duplicateStaticMethod() → void {}
static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|set#duplicateInstanceGetterPlusSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|set#duplicateInstanceSetterPlusGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|get#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|set#duplicateInstanceGetterAndSetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static get Extension|duplicateStaticGetterPlusSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterPlusSetter(core::int* value) → void {}
@@ -197,13 +197,13 @@ static set Extension|duplicateStaticSetterPlusGetter(core::int* value) → void
static get Extension|duplicateStaticGetterAndSetter() → core::int*
return 0;
static set Extension|duplicateStaticGetterAndSetter(core::int* value) → void {}
static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|get#instanceGetterAndStaticSetter<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static set Extension|instanceGetterAndStaticSetter(core::int* value) → void {}
static get Extension|instanceSetterAndStaticGetter() → core::int*
return 0;
static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this) → core::int*
static method Extension|set#instanceSetterAndStaticGetter<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method Extension|get#instanceGetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this) → core::int*
return 0;
static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(final core::int* #this, core::int* value) → void {}
static method Extension|set#instanceSetterAndStaticField<T extends core::Object* = dynamic>(lowered final core::int* #this, core::int* value) → void {}
static method main() → dynamic {}
@@ -23,7 +23,7 @@ class C extends core::Object {
extension E on self::C* {
get two = self::E|get#two;
}
static method E|get#two(final self::C* #this) → core::int*
static method E|get#two(lowered final self::C* #this) → core::int*
;
static method main() → dynamic
;
@@ -25,7 +25,7 @@ class C extends core::Object {
extension E on self::C* {
get two = self::E|get#two;
}
static method E|get#two(final self::C* #this) → core::int*
static method E|get#two(lowered final self::C* #this) → core::int*
return 2;
static method main() → dynamic {
self::C* c = new self::C::•();
@@ -25,7 +25,7 @@ class C extends core::Object {
extension E on self::C* {
get two = self::E|get#two;
}
static method E|get#two(final self::C* #this) → core::int*
static method E|get#two(lowered final self::C* #this) → core::int*
return 2;
static method main() → dynamic {
self::C* c = new self::C::•();
@@ -46,27 +46,27 @@ extension Extension on self::Class* {
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
static method Extension|get#simpleSetter(final self::Class* #this) → core::int*
static method Extension|get#simpleSetter(lowered final self::Class* #this) → core::int*
;
static method Extension|set#simpleSetter(final self::Class* #this, core::int* value) → void
static method Extension|set#simpleSetter(lowered final self::Class* #this, core::int* value) → void
;
static method Extension|get#mutatingSetter(final self::Class* #this) → core::int*
static method Extension|get#mutatingSetter(lowered final self::Class* #this) → core::int*
;
static method Extension|set#mutatingSetter(final self::Class* #this, core::int* value) → void
static method Extension|set#mutatingSetter(lowered final self::Class* #this, core::int* value) → void
;
static method Extension|get#setterWithReturn(final self::Class* #this) → core::int*
static method Extension|get#setterWithReturn(lowered final self::Class* #this) → core::int*
;
static method Extension|set#setterWithReturn(final self::Class* #this, core::int* value) → void
static method Extension|set#setterWithReturn(lowered final self::Class* #this, core::int* value) → void
;
static method Extension|get#setterWithClosure(final self::Class* #this) → core::int*
static method Extension|get#setterWithClosure(lowered final self::Class* #this) → core::int*
;
static method Extension|set#setterWithClosure(final self::Class* #this, core::int* value) → void
static method Extension|set#setterWithClosure(lowered final self::Class* #this, core::int* value) → void
;
static method Extension|testInternal(final self::Class* #this) → dynamic
static method Extension|testInternal(lowered final self::Class* #this) → dynamic
;
static method Extension|get#testInternal(final self::Class* #this) → () →* dynamic
static method Extension|get#testInternal(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testInternal(#this);
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
;
static method main() → dynamic
;
@@ -48,35 +48,35 @@ extension Extension on self::Class* {
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
static method Extension|get#simpleSetter(final self::Class* #this) → core::int*
static method Extension|get#simpleSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#simpleSetter(final self::Class* #this, core::int* value) → void {
static method Extension|set#simpleSetter(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
static method Extension|get#mutatingSetter(final self::Class* #this) → core::int*
static method Extension|get#mutatingSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#mutatingSetter(final self::Class* #this, core::int* value) → void {
static method Extension|set#mutatingSetter(lowered final self::Class* #this, core::int* value) → void {
value = value.{core::num::+}(1);
#this.{self::Class::field} = value;
}
static method Extension|get#setterWithReturn(final self::Class* #this) → core::int*
static method Extension|get#setterWithReturn(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#setterWithReturn(final self::Class* #this, core::int* value) → void {
static method Extension|set#setterWithReturn(lowered final self::Class* #this, core::int* value) → void {
if(value.{core::num::<}(0)) {
#this.{self::Class::field} = value.{core::int::unary-}();
return;
}
#this.{self::Class::field} = value;
}
static method Extension|get#setterWithClosure(final self::Class* #this) → core::int*
static method Extension|get#setterWithClosure(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#setterWithClosure(final self::Class* #this, core::int* value) → void {
static method Extension|set#setterWithClosure(lowered final self::Class* #this, core::int* value) → void {
function abs(dynamic value) → dynamic {
return value.<(0) as{TypeError,ForDynamic} core::bool* ?{dynamic} value.unary-() : value;
}
#this.{self::Class::field} = abs.call(value) as{TypeError,ForDynamic} core::int*;
}
static method Extension|testInternal(final self::Class* #this) → dynamic {
static method Extension|testInternal(lowered final self::Class* #this) → dynamic {
self::expect(null, #this.{self::Class::field});
self::Extension|set#simpleSetter(#this, 0);
self::expect(0, #this.{self::Class::field});
@@ -102,9 +102,9 @@ static method Extension|testInternal(final self::Class* #this) → dynamic {
self::expect(4.{core::int::unary-}(), let final core::int* #t11 = 4.{core::int::unary-}() in let final void #t12 = self::Extension|set#setterWithClosure(#this, #t11) in #t11);
self::expect(4, #this.{self::Class::field});
}
static method Extension|get#testInternal(final self::Class* #this) → () →* dynamic
static method Extension|get#testInternal(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testInternal(#this);
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(null, c.{self::Class::field});
@@ -48,35 +48,35 @@ extension Extension on self::Class* {
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
static method Extension|get#simpleSetter(final self::Class* #this) → core::int*
static method Extension|get#simpleSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#simpleSetter(final self::Class* #this, core::int* value) → void {
static method Extension|set#simpleSetter(lowered final self::Class* #this, core::int* value) → void {
#this.{self::Class::field} = value;
}
static method Extension|get#mutatingSetter(final self::Class* #this) → core::int*
static method Extension|get#mutatingSetter(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#mutatingSetter(final self::Class* #this, core::int* value) → void {
static method Extension|set#mutatingSetter(lowered final self::Class* #this, core::int* value) → void {
value = value.{core::num::+}(1);
#this.{self::Class::field} = value;
}
static method Extension|get#setterWithReturn(final self::Class* #this) → core::int*
static method Extension|get#setterWithReturn(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#setterWithReturn(final self::Class* #this, core::int* value) → void {
static method Extension|set#setterWithReturn(lowered final self::Class* #this, core::int* value) → void {
if(value.{core::num::<}(0)) {
#this.{self::Class::field} = value.{core::int::unary-}();
return;
}
#this.{self::Class::field} = value;
}
static method Extension|get#setterWithClosure(final self::Class* #this) → core::int*
static method Extension|get#setterWithClosure(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field};
static method Extension|set#setterWithClosure(final self::Class* #this, core::int* value) → void {
static method Extension|set#setterWithClosure(lowered final self::Class* #this, core::int* value) → void {
function abs(dynamic value) → dynamic {
return value.<(0) as{TypeError,ForDynamic} core::bool* ?{dynamic} value.unary-() : value;
}
#this.{self::Class::field} = abs.call(value) as{TypeError,ForDynamic} core::int*;
}
static method Extension|testInternal(final self::Class* #this) → dynamic {
static method Extension|testInternal(lowered final self::Class* #this) → dynamic {
self::expect(null, #this.{self::Class::field});
self::Extension|set#simpleSetter(#this, 0);
self::expect(0, #this.{self::Class::field});
@@ -102,9 +102,9 @@ static method Extension|testInternal(final self::Class* #this) → dynamic {
self::expect(4.{core::int::unary-}(), let final core::int* #t11 = 4.{core::int::unary-}() in let final void #t12 = self::Extension|set#setterWithClosure(#this, #t11) in #t11);
self::expect(4, #this.{self::Class::field});
}
static method Extension|get#testInternal(final self::Class* #this) → () →* dynamic
static method Extension|get#testInternal(lowered final self::Class* #this) → () →* dynamic
return () → dynamic => self::Extension|testInternal(#this);
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(null, c.{self::Class::field});
@@ -19,7 +19,7 @@ class GenericClass<T extends core::Object* = dynamic> extends core::Object {
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void
;
static method error() → dynamic
;
@@ -28,7 +28,7 @@ class GenericClass<T extends core::Object* = dynamic> extends core::Object {
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
set setter = self::GenericExtension|set#setter;
}
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
static method error() → dynamic {
self::GenericClass<core::int*>* genericClass = new self::GenericClass::•<core::int*>();
self::expect(null, let final self::GenericClass<core::int*>* #t1 = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/extensions/extension_setter_error.dart:13:41: Error: A value of type 'GenericClass<int>' can't be assigned to a variable of type 'GenericClass<double>'.
@@ -20,9 +20,9 @@ extension Extension<T extends core::Object* = dynamic> on self::Class<T*>* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
;
static method Extension|get#method<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
static method Extension|get#method<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
return <R extends core::Object* = dynamic>(self::Extension|get#method::T* t) → R* => self::Extension|method<self::Extension|get#method::T*, R*>(#this, t);
static method main() → dynamic
;
@@ -21,9 +21,9 @@ extension Extension<T extends core::Object* = dynamic> on self::Class<T*>* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
return null;
static method Extension|get#method<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
static method Extension|get#method<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
return <R extends core::Object* = dynamic>(self::Extension|get#method::T* t) → R* => self::Extension|method<self::Extension|get#method::T*, R*>(#this, t);
static method main() → dynamic {
let final dynamic #t1 = self::Extension|method<core::int*, dynamic>(new self::Class::•<core::int*>(), 0) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::Object::toString}();
@@ -21,9 +21,9 @@ extension Extension<T extends core::Object* = dynamic> on self::Class<T*>* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
}
static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
static method Extension|method<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final self::Class<self::Extension|method::T*>* #this, self::Extension|method::T* t) → self::Extension|method::R*
return null;
static method Extension|get#method<T extends core::Object* = dynamic>(final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
static method Extension|get#method<T extends core::Object* = dynamic>(lowered final self::Class<self::Extension|get#method::T*>* #this) → <R extends core::Object* = dynamic>(self::Extension|get#method::T*) →* R*
return <R extends core::Object* = dynamic>(self::Extension|get#method::T* t) → R* => self::Extension|method<self::Extension|get#method::T*, R*>(#this, t);
static method main() → dynamic {
let final dynamic #t1 = self::Extension|method<core::int*, dynamic>(new self::Class::•<core::int*>(), 0) in #t1.{core::Object::==}(null) ?{core::String*} null : #t1.{core::Object::toString}();
@@ -30,17 +30,17 @@ extension Extension1 on self::Class* {
get m3 = self::Extension1|get#m3;
set m4 = self::Extension1|set#m4;
}
static method Extension0|set#m1(final self::Class* #this, core::int* x) → void
static method Extension0|set#m1(lowered final self::Class* #this, core::int* x) → void
;
static method Extension0|get#m2(final self::Class* #this) → core::int*
static method Extension0|get#m2(lowered final self::Class* #this) → core::int*
;
static method Extension0|set#m3(final self::Class* #this, core::int* x) → void
static method Extension0|set#m3(lowered final self::Class* #this, core::int* x) → void
;
static method Extension0|get#m4(final self::Class* #this) → core::int*
static method Extension0|get#m4(lowered final self::Class* #this) → core::int*
;
static method Extension1|get#m3(final self::Class* #this) → core::int*
static method Extension1|get#m3(lowered final self::Class* #this) → core::int*
;
static method Extension1|set#m4(final self::Class* #this, core::int* x) → void
static method Extension1|set#m4(lowered final self::Class* #this, core::int* x) → void
;
static method main() → dynamic
;
@@ -93,15 +93,15 @@ extension Extension1 on self::Class* {
get m3 = self::Extension1|get#m3;
set m4 = self::Extension1|set#m4;
}
static method Extension0|set#m1(final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m2(final self::Class* #this) → core::int*
static method Extension0|set#m1(lowered final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m2(lowered final self::Class* #this) → core::int*
return 0;
static method Extension0|set#m3(final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m4(final self::Class* #this) → core::int*
static method Extension0|set#m3(lowered final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m4(lowered final self::Class* #this) → core::int*
return 0;
static method Extension1|get#m3(final self::Class* #this) → core::int*
static method Extension1|get#m3(lowered final self::Class* #this) → core::int*
return 0;
static method Extension1|set#m4(final self::Class* #this, core::int* x) → void {}
static method Extension1|set#m4(lowered final self::Class* #this, core::int* x) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(0, c.{self::Class::m1});
@@ -93,15 +93,15 @@ extension Extension1 on self::Class* {
get m3 = self::Extension1|get#m3;
set m4 = self::Extension1|set#m4;
}
static method Extension0|set#m1(final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m2(final self::Class* #this) → core::int*
static method Extension0|set#m1(lowered final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m2(lowered final self::Class* #this) → core::int*
return 0;
static method Extension0|set#m3(final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m4(final self::Class* #this) → core::int*
static method Extension0|set#m3(lowered final self::Class* #this, core::int* x) → void {}
static method Extension0|get#m4(lowered final self::Class* #this) → core::int*
return 0;
static method Extension1|get#m3(final self::Class* #this) → core::int*
static method Extension1|get#m3(lowered final self::Class* #this) → core::int*
return 0;
static method Extension1|set#m4(final self::Class* #this, core::int* x) → void {}
static method Extension1|set#m4(lowered final self::Class* #this, core::int* x) → void {}
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(0, c.{self::Class::m1});

Some files were not shown because too many files have changed in this diff Show More