Mercurial > hg > truffle
annotate truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLAssertFalseBuiltin.java @ 22065:503529c65456
Remove trailing whitespace from UPL license
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 05 Aug 2015 10:19:41 -0700 |
parents | c07e64ecb528 |
children | dc83cc1f94f2 |
rev | line source |
---|---|
17003
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
1 /* |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
4 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
5 * The Universal Permissive License (UPL), Version 1.0 |
22065
503529c65456
Remove trailing whitespace from UPL license
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21997
diff
changeset
|
6 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
7 * Subject to the condition set forth below, permission is hereby granted to any |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
8 * person obtaining a copy of this software, associated documentation and/or |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
9 * data (collectively the "Software"), free of charge and under any and all |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
10 * copyright rights in the Software, and any and all patent rights owned or |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
11 * freely licensable by each licensor hereunder covering either (i) the |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
12 * unmodified Software as contributed to or provided by such licensor, or (ii) |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
13 * the Larger Works (as defined below), to deal in both |
22065
503529c65456
Remove trailing whitespace from UPL license
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21997
diff
changeset
|
14 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
15 * (a) the Software, and |
22065
503529c65456
Remove trailing whitespace from UPL license
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21997
diff
changeset
|
16 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
17 * (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
18 * one is included with the Software each a "Larger Work" to which the Software |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
19 * is contributed by such licensors), |
22065
503529c65456
Remove trailing whitespace from UPL license
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21997
diff
changeset
|
20 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
21 * without restriction, including without limitation the rights to copy, create |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
22 * derivative works of, display, perform, and distribute the Software and make, |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
23 * use, sell, offer for sale, import, export, have made, and have sold the |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
24 * Software and the Larger Work(s), and to sublicense the foregoing rights on |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
25 * either these or other terms. |
22065
503529c65456
Remove trailing whitespace from UPL license
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21997
diff
changeset
|
26 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
27 * This license is subject to the following condition: |
22065
503529c65456
Remove trailing whitespace from UPL license
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21997
diff
changeset
|
28 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
29 * The above copyright notice and either this complete permission notice or at a |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
30 * minimum a reference to the UPL must be included in all copies or substantial |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
31 * portions of the Software. |
22065
503529c65456
Remove trailing whitespace from UPL license
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
21997
diff
changeset
|
32 * |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
34 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
35 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
36 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
37 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
38 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21987
diff
changeset
|
39 * SOFTWARE. |
17003
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
40 */ |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
41 package com.oracle.truffle.sl.builtins; |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
42 |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
43 import com.oracle.truffle.api.*; |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
44 import com.oracle.truffle.api.dsl.*; |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
45 import com.oracle.truffle.api.nodes.*; |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
46 import com.oracle.truffle.api.source.*; |
17004
158c9ba66e45
SL: added support for guest language stack traces to SLException; added SLAssertionError.
Christian Humer <christian.humer@gmail.com>
parents:
17003
diff
changeset
|
47 import com.oracle.truffle.sl.*; |
17003
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
48 import com.oracle.truffle.sl.runtime.*; |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
49 |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
50 /** |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
51 * Asserts a given value to be <code>false</code> and throws an {@link AssertionError} if the value |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
52 * was <code>true</code>. |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
53 */ |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
54 @NodeInfo(shortName = "assertFalse") |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
55 public abstract class SLAssertFalseBuiltin extends SLBuiltinNode { |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
56 |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
57 public SLAssertFalseBuiltin() { |
21987
b2d1c8ff592a
Less classes in the source API package. Merging interfaces and their only implementation into final classes. Hiding NullSourceSection behind factory method. Using JDK's standard CharsetDecoder instead of proprietary BytesDecoder.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
58 super(SourceSection.createUnavailable("SL builtin", "assertFalse")); |
17003
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
59 } |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
60 |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
61 @Specialization |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
62 public boolean doAssert(boolean value, String message) { |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
63 if (value) { |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
64 CompilerDirectives.transferToInterpreter(); |
17004
158c9ba66e45
SL: added support for guest language stack traces to SLException; added SLAssertionError.
Christian Humer <christian.humer@gmail.com>
parents:
17003
diff
changeset
|
65 throw new SLAssertionError(message == null ? "" : message); |
17003
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
66 } |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
67 return value; |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
68 } |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
69 |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
70 @Specialization |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
71 public boolean doAssertNull(boolean value, @SuppressWarnings("unused") SLNull message) { |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
72 return doAssert(value, null); |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
73 } |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
74 |
8fd42ea95f64
SL: added assertTrue and assertFalse builtins to SL.
Christian Humer <christian.humer@gmail.com>
parents:
diff
changeset
|
75 } |