Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
IPDSnelting
mjtest-tests
Commits
a4b6e13a
Commit
a4b6e13a
authored
Nov 17, 2021
by
ucifm
Browse files
added semantic tests of group 5
parent
06736cad
Pipeline
#177366
failed with stage
in 10 minutes and 13 seconds
Changes
63
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
semantic/AcceptableConstants.valid.mj
0 → 100644
View file @
a4b6e13a
/* OK but maybe warnings */
class Main {
public static void main(String[] args) {
int i = -2147483648;
i = 2147483647;
i = -2147483648 - 1;
i = 2147483647 + 1;
i = 1000000000 * 10000000;
i = -1000000000 * -10000000;
i = 1000000000 * -10000000;
i = 1000 / 0;
i = 1000 % 0;
i = 0 * 1000000000 * 1000000000;
}
}
semantic/ArgsUsageInBody.invalid.mj
0 → 100644
View file @
a4b6e13a
/* `args` may not be used in the main body. */
class main {
public void foo(String[] args) {
}
public static void main(String[] args) {
main main = new main();
main.foo(args);
}
}
semantic/ArrayAccessInExpressionStatement.invalid.mj
0 → 100644
View file @
a4b6e13a
/* Array access is not allowed in expression statements. */
class Main {
public static void main(String[] args) {
int[] i = new int[10];
i[123];
}
}
semantic/ArrayLengthIsNotAllowed.invalid.mj
0 → 100644
View file @
a4b6e13a
/* This should fail because array objects don't have an length attribute. */
class Main {
public static void main(String[] args) {
int[] foo = new int[123];
int length = foo.length;
}
}
semantic/BoolAssignmentInIf.valid.mj
0 → 100644
View file @
a4b6e13a
/* OK */
class Main {
public static void main(String[] args) {
boolean b;
if (b = true) System.out.println(123);
}
}
semantic/CompilerBuiltins.valid.mj
0 → 100644
View file @
a4b6e13a
/* OK */
class Main {
public static void main(String[] args) {
int x = System.in.read();
System.out.println(x);
System.out.write(x);
System.out.flush();
}
}
semantic/CompilerBuiltinsOverriding1.valid.mj
0 → 100644
View file @
a4b6e13a
/* OK */
class System {
}
class Main {
public Main in;
public Main out;
public int read(int x) {
return x;
}
public int println(int x) {
return x;
}
public int write(int x) {
return x;
}
public void flush(int x) {
}
public static void main(String[] args) {
Main System = new Main();
int x = System.in.read(0);
x = System.out.println(x);
x = System.out.write(x);
System.out.flush(x);
}
}
semantic/CompilerBuiltinsOverriding2.valid.mj
0 → 100644
View file @
a4b6e13a
/* OK */
class System {
}
class Main {
public Main System;
public Main in;
public Main out;
public int read(int x) {
return x;
}
public int println(int x) {
return x;
}
public int write(int x) {
return x;
}
public void flush(int x) {
}
public void foo() {
int x = System.in.read(0);
x = System.out.println(x);
x = System.out.write(x);
System.out.flush(x);
}
public static void main(String[] args) {
Main System = new Main();
System.in = new Main();
System.in.foo();
}
}
semantic/CompilerBuiltinsOverriding3.valid.mj
0 → 100644
View file @
a4b6e13a
/* OK */
class System {
}
class Main {
public Main in;
public Main out;
public int read(int x) {
return x;
}
public int println(int x) {
return x;
}
public int write(int x) {
return x;
}
public void flush(int x) {
}
public void foo(Main System) {
int x = System.in.read(0);
x = System.out.println(x);
x = System.out.write(x);
System.out.flush(x);
}
public static void main(String[] args) {
Main System = new Main();
System.in = new Main();
System.in.foo(System.in);
}
}
semantic/CompilerBuiltinsOverriding4.invalid.mj
0 → 100644
View file @
a4b6e13a
/* When a System type is present, System.in refers to a static field within System
* (which does not exist in Mini-Java), and should hence fail instead of succeed
* like if the builtin method was used instead. */
class System {
}
class Main {
public static void main(String[] args) {
int x = System.in.read();
}
}
semantic/ConstantTooLarge.invalid.mj
0 → 100644
View file @
a4b6e13a
/* largest int constant is 2147483647 */
class Main {
public static void main(String[] args) {
int i = 2147483648;
}
}
semantic/ConstantTooSmall.invalid.mj
0 → 100644
View file @
a4b6e13a
/* smallest integer constant is -2147483648 */
class Main {
public static void main(String[] args) {
int i = -2147483649;
}
}
semantic/DisallowedMethodOverloading.invalid.mj
0 → 100644
View file @
a4b6e13a
/* Method overloading is not allowed */
class Foo {
public int i;
public void bar() {
}
public void bar(int x) {
}
}
class Main {
public static void main(String[] args) {
Foo foo = new Foo();
}
}
semantic/DuplicateFields.invalid.mj
0 → 100644
View file @
a4b6e13a
/* Duplicate fields are not allowed. */
class Main {
public int foo;
public int foo;
public static void main(String[] args) {
}
}
semantic/DuplicateParams.invalid.mj
0 → 100644
View file @
a4b6e13a
/* Duplicate parameters are not allowed. */
class Main {
public void foo(int foobar, int foobar) {
}
public static void main(String[] args) {
}
}
semantic/FlushWithArg.invalid.mj
0 → 100644
View file @
a4b6e13a
/* flush takes no arguments */
class Main {
public static void main(String[] args) {
System.out.flush(234);
}
}
semantic/IndefiniteAssignment.valid.mj
0 → 100644
View file @
a4b6e13a
/* OK */
class Main {
public Main m;
public int foobar1;
public boolean foobar2;
public void foo() {
System.out.println(foobar1);
System.out.println(m.foobar1);
if (foobar2) {
foobar1 = 1;
} else {
foobar1 = 2;
}
System.out.println(foobar1);
}
public static void main(String[] args) {
int foo;
boolean bar;
Main m;
System.out.println(foo);
System.out.println(m.foobar1);
if (bar) {
foo = 1;
} else {
foo = 2;
}
System.out.println(foo);
}
}
semantic/IntAssignmentInIf.invalid.mj
0 → 100644
View file @
a4b6e13a
/* This should fail because int expression in if condition. */
class Main {
public static void main(String[] args) {
int x;
if (x = 22) System.out.println(123);
}
}
semantic/InvalidAssignment1.invalid.mj
0 → 100644
View file @
a4b6e13a
/* Some assignments are not allowed. */
class Main {
public static void main(String[] args) {
boolean x = true;
x || x = true;
}
}
semantic/InvalidAssignment10.invalid.mj
0 → 100644
View file @
a4b6e13a
/* Some assignments are not allowed. */
class Main {
public void foo() {
this = new Main();
}
public static void main(String[] args) {
}
}
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment