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);
        }
Example #3
0
 protected override Void handleSynchronized(SynchronizedStatementNode synchronizedStatement, Set <TypeInfo> dependencies)
 {
     expressionHandler.handleExpression(synchronizedStatement.Lock, dependencies, true);
     handleStatement(synchronizedStatement.Statement, dependencies);
     return(null);
 }