if (this.binding instanceof ProblemBinding && ((ProblemBinding) this.binding).problemId() == NotFound){
if (this.evaluationContext.declaringTypeName != null) {
this.delegateThis = scope.getField(scope.enclosingSourceType(), DELEGATE_THIS, this);
if (this.delegateThis != null){ // if not found then internal error, field should have been found
// will not support innerclass emulation inside delegate
FieldBinding fieldBinding = scope.getField(this.delegateThis.type, this.token, this);
if (!fieldBinding.isValidBinding()) {
if (((ProblemFieldBinding) fieldBinding).problemId() == NotVisible) {
// manage the access to a private field of the enclosing type
CodeSnippetScope localScope = new CodeSnippetScope(scope);
this.codegenBinding = this.binding = localScope.getFieldForCodeSnippet(this.delegateThis.type, this.token, this);
return checkFieldAccess(scope);