/// /// import { CPPObject } from "../../runtime/objects"; import { CompleteObjectType, PointerType, FunctionType, CompleteClassType, PotentiallyCompleteObjectType } from "../../compilation/types"; import { ExpressionContext, ConstructDescription, SemanticContext } from "../../compilation/contexts"; import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct"; import { FunctionEntity, MemberVariableEntity } from "../../compilation/entities"; import { LexicalIdentifier } from "../../compilation/lexical"; import { Expression, CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; import { ArrowExpressionOutlet } from "../../../view/constructs/ExpressionOutlets"; import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet"; import { AnalyticConstruct } from "../../../analysis/predicates"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { ArrowExpressionASTNode } from "../../../ast/ast_expressions"; export declare class ArrowExpression extends Expression { readonly construct_type = "arrow_expression"; readonly type?: PotentiallyCompleteObjectType | FunctionType; readonly valueCategory = "lvalue"; readonly operand: Expression; readonly memberName: LexicalIdentifier; readonly entity?: MemberVariableEntity | FunctionEntity; static createFromAST(ast: ArrowExpressionASTNode, context: ExpressionContext): ArrowExpression; constructor(context: ExpressionContext, ast: ArrowExpressionASTNode, operand: Expression, memberName: LexicalIdentifier); createDefaultOutlet(this: CompiledObjectArrowExpression | CompiledFunctionArrowExpression, element: JQuery, parent?: ConstructOutlet): ArrowExpressionOutlet; describeEvalResult(depth: number): ConstructDescription; entitiesUsed(): (FunctionEntity> | MemberVariableEntity)[]; isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean; } export interface TypedObjectArrowExpression extends ArrowExpression, t_TypedExpression { readonly type: T; readonly entity: MemberVariableEntity; readonly operand: TypedExpression>; } export interface CompiledObjectArrowExpression extends TypedObjectArrowExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly operand: CompiledExpression>; } export interface TypedFunctionArrowExpression extends ArrowExpression, t_TypedExpression { readonly type: T; readonly entity: FunctionEntity; readonly operand: TypedExpression>; } export interface CompiledFunctionArrowExpression extends TypedFunctionArrowExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly operand: CompiledExpression>; } export declare class RuntimeObjectArrowExpression extends RuntimeExpression> { readonly operand: RuntimeExpression>; constructor(model: CompiledObjectArrowExpression, parent: RuntimeConstruct); protected upNextImpl(): void; protected stepForwardImpl(): void; } export declare class RuntimeFunctionArrowExpression extends RuntimeExpression { readonly operand: RuntimeExpression>; private receiverCalledOn?; constructor(model: CompiledFunctionArrowExpression, parent: RuntimeConstruct); protected upNextImpl(): void; protected stepForwardImpl(): void; get contextualReceiver(): CPPObject; }