Changed from typedef to obj and def

This commit is contained in:
Nathan Braswell
2015-05-16 12:05:23 -04:00
parent 4bc42bc516
commit 65fd2ed9b7
27 changed files with 55 additions and 47 deletions

View File

@@ -1,11 +1,11 @@
import io:*;
typedef NoTraits {};
obj NoTraits {};
typedef Trait1 (FirstTrait) {};
typedef Trait2 (SecondTrait) {};
typedef TwoTrait (FirstTrait, SecondTrait) {};
typedef AlreadySpecilized (FirstTrait, SecondTrait) {};
obj Trait1 (FirstTrait) {};
obj Trait2 (SecondTrait) {};
obj TwoTrait (FirstTrait, SecondTrait) {};
obj AlreadySpecilized (FirstTrait, SecondTrait) {};
fun OneTwoFunc<T>(obj: T): void {
println("No Traits");
@@ -30,12 +30,12 @@ template <AlreadySpecilized> |void| OneTwoFunc(|AlreadySpecilized| obj) {
//This should work for objects too!
//To test, we cycle the mapping of traits
typedef OneTwoObj<T> (FirstTrait) {};
typedef OneTwoObj<T(FirstTrait)> (SecondTrait) {};
typedef OneTwoObj<T(SecondTrait)> (FirstTrait, SecondTrait) {};
typedef OneTwoObj<T(FirstTrait, SecondTrait)> {};
obj OneTwoObj<T> (FirstTrait) {};
obj OneTwoObj<T(FirstTrait)> (SecondTrait) {};
obj OneTwoObj<T(SecondTrait)> (FirstTrait, SecondTrait) {};
obj OneTwoObj<T(FirstTrait, SecondTrait)> {};
/*
*typedef template<AlreadySpecilized> OneTwoObj {
*obj template<AlreadySpecilized> OneTwoObj {
* void proveSpecilized() {
* println("I'm specilized!");
* }