aboutsummaryrefslogtreecommitdiff
path: root/tests/run/imports.scala
blob: 4bdbef9f95f28cf7da0b7d351b301f8d25a9dbc4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//############################################################################
// Import statements
//############################################################################

//############################################################################

object checker {
  def check(location: String, what: String, value: Any): Unit = {
    Console.print("In " + location + ", " + what + ".toString() returns ");
    Console.flush;
    val string: String = if (value == null) "null" else value.toString();
    val test = if (string == location) "ok" else "KO";
    Console.println(string + " -> " + test);
    Console.flush;
  }
}

import checker.check;

//############################################################################

//import o_ico.v_ico;

class C_ico() {
  o_ico.v_ico = this;
  import o_ico.v_ico;
  override def toString(): String = "C_ico";
  def method: C_ico = v_ico;
  val field: C_ico = v_ico;

  check("C_ico", "v_ico ", v_ico);
  check("C_ico", "field ", field);
  check("C_ico", "method", method);
  Console.println;
}

object o_ico {
  var v_ico: C_ico = null;
  new C_ico();
}

//############################################################################

object o_ioc {
  var v_ioc: C_ioc = null;
  new C_ioc();
}

import o_ioc.v_ioc;


class C_ioc() {
  o_ioc.v_ioc = this;
  override def toString(): String = "C_ioc";
  def method: C_ioc = v_ioc;
  val field: C_ioc = v_ioc;

  check("C_ioc", "v_ioc ", v_ioc);
  check("C_ioc", "field ", field);
  check("C_ioc", "method", method);
  Console.println;
}

//############################################################################

object o_oic {
  var v_oic: C_oic = null;
  new C_oic();
}

import o_oic.v_oic;

class C_oic() {
  o_oic.v_oic = this;
  override def toString(): String = "C_oic";
  def method: C_oic = v_oic;
  val field: C_oic = v_oic;

  check("C_oic", "v_oic ", v_oic);
  check("C_oic", "field ", field);
  check("C_oic", "method", method);
  Console.println;
}

//############################################################################

object Test {
  def main(args: Array[String]): Unit = {
    o_ico;
    o_ioc;
    o_oic;
    ()
  }
}

//############################################################################