123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* *******************************************************************
- * Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC).
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * PARC initial implementation
- * ******************************************************************/
- package org.aspectj.ajdt.internal.compiler.ast;
-
- import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression;
- import org.aspectj.org.eclipse.jdt.internal.compiler.ast.MessageSend;
- import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream;
- import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BlockScope;
- import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding;
- import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
-
- public class KnownMessageSend extends MessageSend {
-
- public KnownMessageSend(MethodBinding binding, Expression receiver, Expression[] arguments) {
- super();
- this.binding = binding;
- this.arguments = arguments;
- this.receiver = receiver;
- this.actualReceiverType = binding.declaringClass;
- this.selector = binding.selector;
- // 1.8.7 change:
- // If we don't set this to NotAConstant then we run the code in MessageSend.resolveType that sorts
- // out this.argumentTypes - which we need set because further down MessageSend.resolveType it will
- // attempt to use it.
- // constant = Constant.NotAConstant;
- }
-
- public void manageSyntheticAccessIfNecessary(BlockScope currentScope) {
- return;
- }
-
- protected void resolveMethodBinding(
- BlockScope scope,
- TypeBinding[] argumentTypes) {
- // we've already resolved this
- }
-
- public String toStringExpression() {
- return "KnownMessageSend";
- }
-
- public void generateCode(
- BlockScope currentScope,
- CodeStream codeStream,
- boolean valueRequired) {
- //System.out.println("about to generate: " +this + " args: " + Arrays.asList(arguments));
- // this.actualReceiverType = this.receiver.resolveType(currentScope);
- super.generateCode(currentScope, codeStream, valueRequired);
- }
-
- }
|