public TypeBinding resolveType(BlockScope scope) {
constant = Constant.NotAConstant;
- this.methodDeclaration.scope=new MethodScope(scope,this.methodDeclaration,false);
- this.methodDeclaration.binding=this.methodDeclaration.scope.createMethod(this.methodDeclaration, null, scope.enclosingCompilationUnit(), false, false);
- methodDeclaration.bindArguments();
- this.methodDeclaration.binding.createFunctionTypeBinding(scope);
- this.methodDeclaration.resolve(scope);
+ MethodDeclaration method = this.methodDeclaration;
+ if (method.selector != null) {
+ method.resolve(scope);
+ } else {
+ method.scope = new MethodScope(scope,method, false);
+ method.binding = method.scope.createMethod(method, null, scope.enclosingCompilationUnit(), false, false);
+ method.bindArguments();
+ method.binding.createFunctionTypeBinding(scope);
+ method.resolve(scope);
+
+ }
return this.methodDeclaration.binding.functionTypeBinding;
}