protected override Boolean handleSynchronized(SynchronizedStatementNode synchronizedStatement, HashSet <StatementNode> visited) { if (expressionChecker.handleExpression(synchronizedStatement.Lock, visited, true) == AssignmentState.Assigned) { return(Boolean.FALSE); } return(handleStatement(synchronizedStatement.Statement, visited)); }
protected override Void handleSynchronized(SynchronizedStatementNode synchronizedStatement, Void source) { var lock = synchronizedStatement.Lock; this.ExpressionValidator.handleExpression(lock, null, true); var linfo = lock.getUserData(typeof(ExpressionInfo)); if (linfo == null) { throw context.error(CompileErrorId.UnexpectedNull, lock); } if (ValidationHelper.getType(context, lock).IsPrimitive) { throw context.error(CompileErrorId.ReferenceTypeValueExpected, lock); } handleStatement(synchronizedStatement.Statement, null); return(null); }
protected override Void handleSynchronized(SynchronizedStatementNode synchronizedStatement, Set <TypeInfo> dependencies) { expressionHandler.handleExpression(synchronizedStatement.Lock, dependencies, true); handleStatement(synchronizedStatement.Statement, dependencies); return(null); }