| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 package com.google.dart.compiler.resolver; | 5 package com.google.dart.compiler.resolver; |
| 6 | 6 |
| 7 import com.google.common.base.Joiner; | 7 import com.google.common.base.Joiner; |
| 8 import com.google.dart.compiler.DartCompilationError; | 8 import com.google.dart.compiler.DartCompilationError; |
| 9 import com.google.dart.compiler.ErrorCode; | 9 import com.google.dart.compiler.ErrorCode; |
| 10 import com.google.dart.compiler.ast.DartClass; | 10 import com.google.dart.compiler.ast.DartClass; |
| (...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 | 556 |
| 557 public void testFactoryBadTypeArgs8() { | 557 public void testFactoryBadTypeArgs8() { |
| 558 // Invoke constructor in factory method with (wrong) type args | 558 // Invoke constructor in factory method with (wrong) type args |
| 559 resolveAndTest(Joiner.on("\n").join( | 559 resolveAndTest(Joiner.on("\n").join( |
| 560 "class Object {}", | 560 "class Object {}", |
| 561 "interface int {}", | 561 "interface int {}", |
| 562 "interface A<T> default B<T> {", | 562 "interface A<T> default B<T> {", |
| 563 " A();", | 563 " A();", |
| 564 "}", | 564 "}", |
| 565 "class B<T extends int> {", | 565 "class B<T extends int> {", |
| 566 " A() {}", | 566 " factory A() {}", |
| 567 "}"), | 567 "}"), |
| 568 ResolverErrorCode.TYPE_PARAMETERS_MUST_MATCH_EXACTLY); | 568 ResolverErrorCode.TYPE_PARAMETERS_MUST_MATCH_EXACTLY); |
| 569 } | 569 } |
| 570 | 570 |
| 571 public void testFactoryBadTypeArgs9() { | 571 public void testFactoryBadTypeArgs9() { |
| 572 // Invoke constructor in factory method with (wrong) type args | 572 // Invoke constructor in factory method with (wrong) type args |
| 573 resolveAndTest(Joiner.on("\n").join( | 573 resolveAndTest(Joiner.on("\n").join( |
| 574 "class Object {}", | 574 "class Object {}", |
| 575 "interface int {}", | 575 "interface int {}", |
| 576 "interface A<T> default B<T extends int> {", | 576 "interface A<T> default B<T extends int> {", |
| 577 " A();", | 577 " A();", |
| 578 "}", | 578 "}", |
| 579 "class B<T> {", | 579 "class B<T> {", |
| 580 " A() {}", | 580 " factory A() {}", |
| 581 "}"), | 581 "}"), |
| 582 ResolverErrorCode.TYPE_PARAMETERS_MUST_MATCH_EXACTLY); | 582 ResolverErrorCode.TYPE_PARAMETERS_MUST_MATCH_EXACTLY); |
| 583 } | 583 } |
| 584 | 584 |
| 585 public void testFactoryBadTypeArgs11() { | 585 public void testFactoryBadTypeArgs11() { |
| 586 // Invoke constructor in factory method with (wrong) type args | 586 // Invoke constructor in factory method with (wrong) type args |
| 587 resolveAndTest(Joiner.on("\n").join( | 587 resolveAndTest(Joiner.on("\n").join( |
| 588 "class Object {}", | 588 "class Object {}", |
| 589 "interface int {}", | 589 "interface int {}", |
| 590 "interface A<T> default Bogus {", | 590 "interface A<T> default Bogus {", |
| 591 "}", | 591 "}", |
| 592 "class B<T> {", | 592 "class B<T> {", |
| 593 "}"), | 593 "}"), |
| 594 ResolverErrorCode.NO_SUCH_TYPE); | 594 ResolverErrorCode.NO_SUCH_TYPE); |
| 595 } | 595 } |
| 596 | 596 |
| 597 public void testFactoryBadTypeArgs10() { | 597 public void testFactoryBadTypeArgs10() { |
| 598 // Invoke constructor in factory method with (wrong) type args | 598 // Invoke constructor in factory method with (wrong) type args |
| 599 resolveAndTest(Joiner.on("\n").join( | 599 resolveAndTest(Joiner.on("\n").join( |
| 600 "class Object {}", | 600 "class Object {}", |
| 601 "interface int {}", | 601 "interface int {}", |
| 602 "interface A<T> default B {", | 602 "interface A<T> default B {", |
| 603 " A();", | 603 " A();", |
| 604 "}", | 604 "}", |
| 605 "class B {", | 605 "class B {", |
| 606 " A() {}", | 606 " factory A() {}", |
| 607 "}"), | 607 "}"), |
| 608 ResolverErrorCode.DEFAULT_CLASS_MUST_HAVE_SAME_TYPE_PARAMS); | 608 ResolverErrorCode.DEFAULT_CLASS_MUST_HAVE_SAME_TYPE_PARAMS); |
| 609 } | 609 } |
| 610 public void testBadDefaultTypeArgs11() { | 610 public void testBadDefaultTypeArgs11() { |
| 611 // Example from spec v0.6 | 611 // Example from spec v0.6 |
| 612 resolveAndTest(Joiner.on("\n").join( | 612 resolveAndTest(Joiner.on("\n").join( |
| 613 "class Object{}", | 613 "class Object{}", |
| 614 "interface Hashable {}", | 614 "interface Hashable {}", |
| 615 "class HashMapImplementation<K extends Hashable, V> {", | 615 "class HashMapImplementation<K extends Hashable, V> {", |
| 616 "}", | 616 "}", |
| (...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1106 "class Object {}", | 1106 "class Object {}", |
| 1107 "interface Interface {", | 1107 "interface Interface {", |
| 1108 " foo([y,x]);", | 1108 " foo([y,x]);", |
| 1109 "}", | 1109 "}", |
| 1110 "class Class implements Interface {", | 1110 "class Class implements Interface {", |
| 1111 " foo([x,y]) {}", // error | 1111 " foo([x,y]) {}", // error |
| 1112 "}"), | 1112 "}"), |
| 1113 ResolverErrorCode.CANNOT_OVERRIDE_METHOD_ORDER_NAMED_PARAMS); | 1113 ResolverErrorCode.CANNOT_OVERRIDE_METHOD_ORDER_NAMED_PARAMS); |
| 1114 } | 1114 } |
| 1115 } | 1115 } |
| OLD | NEW |