blob: c07784c5b2d1c29dbd4259cb2404954545ebc2c6 [file] [log] [blame]
/*
* Copyright 2003-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package gls.scope
import gls.CompilableTestSupport
class NameResolvingTest extends CompilableTestSupport {
public void testVariableNameEqualsToAClassName() {
Object String = ""
assert String == ""
assert String.class == java.lang.String
}
public void testVariableNameEqualsCurrentClassName() {
Object NameResolvingTest = ""
assert NameResolvingTest == ""
assert NameResolvingTest.class == java.lang.String.class
}
public void testClassNoVariableInStaticMethod() {
assertScript """
static def foo() {
Class.forName('java.lang.Integer')
}
assert foo() == Integer
"""
}
public void testInAsDefAllowedInPackageNames() {
shouldCompile """
package as.in.def
class X {}
"""
}
public void testAssignmentToNonLocalVariableWithSameNameAsClass() {
shouldNotCompile """
String = 1
"""
}
public void testClassUsageInSuper() {
shouldCompile """
class A {A(x){}}
class B extends A {
B(x){super(Thread)}
}
"""
}
public void testSuperClassVariableAccess() {
assertScript """
class U {
public static final int uint
}
class A extends U {
def foo ( ) {
id "A" + ( ( uint < 7 ) ? "B" : "C" ) + '\\n'
}
def id(x){x}
}
def a = new A()
assert a.foo() == "AB\\n"
"""
}
}